From 2b0b61441799f85f274fe49102453eb704512181 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Wed, 29 Apr 2026 06:09:27 +0100 Subject: [PATCH] docs(plugins): clarify clawhub npm migration --- docs/channels/line.md | 8 ++++-- docs/channels/matrix-migration.md | 9 ++++++ docs/channels/matrix.md | 12 ++++++-- docs/channels/mattermost.md | 6 +++- docs/channels/msteams.md | 6 +++- docs/channels/nextcloud-talk.md | 8 ++++-- docs/channels/nostr.md | 6 +++- docs/channels/tlon.md | 10 +++++-- docs/channels/twitch.md | 6 +++- docs/channels/whatsapp.md | 7 ++++- docs/channels/zalo.md | 8 ++++-- docs/channels/zalouser.md | 6 +++- docs/cli/plugins.md | 10 +++++++ docs/gateway/config-channels.md | 6 +++- docs/plugins/building-plugins.md | 7 +++-- docs/plugins/community.md | 8 ++++-- docs/plugins/sdk-setup.md | 7 +++-- docs/plugins/voice-call.md | 6 +++- docs/plugins/zalouser.md | 4 +++ docs/tools/plugin.md | 47 ++++++++++++++++++++++--------- 20 files changed, 145 insertions(+), 42 deletions(-) diff --git a/docs/channels/line.md b/docs/channels/line.md index 3cf39d0a8a1..40a59594b34 100644 --- a/docs/channels/line.md +++ b/docs/channels/line.md @@ -20,13 +20,17 @@ are not supported. LINE ships as a bundled plugin in current OpenClaw releases, so normal packaged builds do not need a separate install. -If you are on an older build or a custom install that excludes LINE, install it -manually: +If you are on an older build or a custom install that excludes LINE, install a +current npm package when one is published: ```bash openclaw plugins install @openclaw/line ``` +If npm reports the OpenClaw-owned package as deprecated or missing, use a +current packaged OpenClaw build or a local checkout until the npm package train +catches up. + Local checkout (when running from a git repo): ```bash diff --git a/docs/channels/matrix-migration.md b/docs/channels/matrix-migration.md index 0ca607c1f16..f56325a07ed 100644 --- a/docs/channels/matrix-migration.md +++ b/docs/channels/matrix-migration.md @@ -211,6 +211,9 @@ If the old store reports room keys that were never backed up, OpenClaw warns ins - Meaning: OpenClaw found old encrypted Matrix state, but it could not load the helper entrypoint from the Matrix plugin that normally inspects that store. - What to do: reinstall or repair the Matrix plugin (`openclaw plugins install @openclaw/matrix`, or `openclaw plugins install ./path/to/local/matrix-plugin` for a repo checkout), then rerun `openclaw doctor --fix` or restart the gateway. +- If npm reports the OpenClaw-owned Matrix package as deprecated, use the bundled + plugin from a current packaged OpenClaw build or the local checkout path until + a newer npm package is published. `Matrix plugin helper path is unsafe: ... Reinstall @openclaw/matrix and try again.` @@ -233,6 +236,9 @@ If the old store reports room keys that were never backed up, OpenClaw warns ins - Meaning: Matrix is pinned to a path install, so mainline updates do not automatically replace it with the repo's standard Matrix package. - What to do: reinstall with `openclaw plugins install @openclaw/matrix` when you want to return to the default Matrix plugin. +- If npm reports the OpenClaw-owned Matrix package as deprecated, use the bundled + plugin from a current packaged OpenClaw build until a newer npm package is + published. ### Encrypted-state recovery messages @@ -336,6 +342,9 @@ new backup key can load correctly after restart. - Meaning: your plugin install record points at a local path that is gone. - What to do: reinstall with `openclaw plugins install @openclaw/matrix`, or if you are running from a repo checkout, `openclaw plugins install ./path/to/local/matrix-plugin`. +- If npm reports the OpenClaw-owned Matrix package as deprecated, use the bundled + plugin from a current packaged OpenClaw build or the local checkout path until + a newer npm package is published. ## If encrypted history still does not come back diff --git a/docs/channels/matrix.md b/docs/channels/matrix.md index 59c5f9dfd06..361eaa6b5f8 100644 --- a/docs/channels/matrix.md +++ b/docs/channels/matrix.md @@ -13,11 +13,19 @@ It uses the official `matrix-js-sdk` and supports DMs, rooms, threads, media, re Current packaged OpenClaw releases ship the Matrix plugin in the box. You do not need to install anything; configuring `channels.matrix.*` (see [Setup](#setup)) is what activates it. -For older builds or custom installs that exclude Matrix, install manually first: +For older builds or custom installs that exclude Matrix, install a current npm +package when one is published: ```bash openclaw plugins install @openclaw/matrix -# or, from a local checkout +``` + +If npm reports the OpenClaw-owned package as deprecated, use a current packaged +OpenClaw build or a local checkout until a newer npm package is published. + +From a local checkout: + +```bash openclaw plugins install ./path/to/local/matrix-plugin ``` diff --git a/docs/channels/mattermost.md b/docs/channels/mattermost.md index 8a0713ce543..06728114745 100644 --- a/docs/channels/mattermost.md +++ b/docs/channels/mattermost.md @@ -15,7 +15,7 @@ Status: bundled plugin (bot token + WebSocket events). Channels, groups, and DMs Mattermost ships as a bundled plugin in current OpenClaw releases, so normal packaged builds do not need a separate install. -If you are on an older build or a custom install that excludes Mattermost, install it manually: +If you are on an older build or a custom install that excludes Mattermost, install a current npm package when one is published: @@ -30,6 +30,10 @@ If you are on an older build or a custom install that excludes Mattermost, insta +If npm reports the OpenClaw-owned package as deprecated, use a current packaged +OpenClaw build or the local checkout path until a newer npm package is +published. + Details: [Plugins](/tools/plugin) ## Quick setup diff --git a/docs/channels/msteams.md b/docs/channels/msteams.md index 04e02f336e2..20a5795826b 100644 --- a/docs/channels/msteams.md +++ b/docs/channels/msteams.md @@ -13,12 +13,16 @@ Microsoft Teams ships as a bundled plugin in current OpenClaw releases, so no separate install is required in the normal packaged build. If you are on an older build or a custom install that excludes bundled Teams, -install it manually: +install a current npm package when one is published: ```bash openclaw plugins install @openclaw/msteams ``` +If npm reports the OpenClaw-owned package as deprecated, use a current packaged +OpenClaw build or the local checkout path until a newer npm package is +published. + Local checkout (when running from a git repo): ```bash diff --git a/docs/channels/nextcloud-talk.md b/docs/channels/nextcloud-talk.md index 44332172d6f..48ad730e19d 100644 --- a/docs/channels/nextcloud-talk.md +++ b/docs/channels/nextcloud-talk.md @@ -13,14 +13,18 @@ Nextcloud Talk ships as a bundled plugin in current OpenClaw releases, so normal packaged builds do not need a separate install. If you are on an older build or a custom install that excludes Nextcloud Talk, -install it manually: +install a current npm package when one is published: -Install via CLI (npm registry): +Install via CLI (npm registry, when a current package exists): ```bash openclaw plugins install @openclaw/nextcloud-talk ``` +If npm reports the OpenClaw-owned package as deprecated, use a current packaged +OpenClaw build or the local checkout path until a newer npm package is +published. + Local checkout (when running from a git repo): ```bash diff --git a/docs/channels/nostr.md b/docs/channels/nostr.md index bdbc9ad5f7b..617671aba23 100644 --- a/docs/channels/nostr.md +++ b/docs/channels/nostr.md @@ -19,12 +19,16 @@ builds do not need a separate install. - Onboarding (`openclaw onboard`) and `openclaw channels add` still surface Nostr from the shared channel catalog. -- If your build excludes bundled Nostr, install it manually. +- If your build excludes bundled Nostr, install a current npm package when one + is published. ```bash openclaw plugins install @openclaw/nostr ``` +If npm reports the OpenClaw-owned package as deprecated, use a current packaged +OpenClaw build or a local checkout until a newer npm package is published. + Use a local checkout (dev workflows): ```bash diff --git a/docs/channels/tlon.md b/docs/channels/tlon.md index 5ef39bcd2e2..8f702e52d44 100644 --- a/docs/channels/tlon.md +++ b/docs/channels/tlon.md @@ -17,15 +17,19 @@ image uploads are supported. Reactions and polls are not yet supported. Tlon ships as a bundled plugin in current OpenClaw releases, so normal packaged builds do not need a separate install. -If you are on an older build or a custom install that excludes Tlon, install it -manually: +If you are on an older build or a custom install that excludes Tlon, install a +current npm package when one is published: -Install via CLI (npm registry): +Install via CLI (npm registry, when a current package exists): ```bash openclaw plugins install @openclaw/tlon ``` +If npm reports the OpenClaw-owned package as deprecated, use a current packaged +OpenClaw build or the local checkout path until a newer npm package is +published. + Local checkout (when running from a git repo): ```bash diff --git a/docs/channels/twitch.md b/docs/channels/twitch.md index 8864b05736e..9976a701692 100644 --- a/docs/channels/twitch.md +++ b/docs/channels/twitch.md @@ -14,7 +14,7 @@ Twitch chat support via IRC connection. OpenClaw connects as a Twitch user (bot Twitch ships as a bundled plugin in current OpenClaw releases, so normal packaged builds do not need a separate install. -If you are on an older build or a custom install that excludes Twitch, install it manually: +If you are on an older build or a custom install that excludes Twitch, install a current npm package when one is published: @@ -29,6 +29,10 @@ If you are on an older build or a custom install that excludes Twitch, install i +If npm reports the OpenClaw-owned package as deprecated, use a current packaged +OpenClaw build or the local checkout path until a newer npm package is +published. + Details: [Plugins](/tools/plugin) ## Quick setup (beginner) diff --git a/docs/channels/whatsapp.md b/docs/channels/whatsapp.md index 59022be259f..ee055ccf20b 100644 --- a/docs/channels/whatsapp.md +++ b/docs/channels/whatsapp.md @@ -14,7 +14,8 @@ Status: production-ready via WhatsApp Web (Baileys). Gateway owns linked session - `openclaw channels login --channel whatsapp` also offers the install flow when the plugin is not present yet. - Dev channel + git checkout: defaults to the local plugin path. -- Stable/Beta: defaults to the npm package `@openclaw/whatsapp`. +- Stable/Beta: uses the npm package `@openclaw/whatsapp` when a current package + is published. Manual install stays available: @@ -22,6 +23,10 @@ Manual install stays available: openclaw plugins install @openclaw/whatsapp ``` +If npm reports the OpenClaw-owned package as deprecated or missing, use a +current packaged OpenClaw build or a local checkout until the npm package train +catches up. + Default DM policy is pairing for unknown senders. diff --git a/docs/channels/zalo.md b/docs/channels/zalo.md index 16a25f66c2e..b38564f3282 100644 --- a/docs/channels/zalo.md +++ b/docs/channels/zalo.md @@ -12,13 +12,17 @@ Status: experimental. DMs are supported. The [Capabilities](#capabilities) secti Zalo ships as a bundled plugin in current OpenClaw releases, so normal packaged builds do not need a separate install. -If you are on an older build or a custom install that excludes Zalo, install it -manually: +If you are on an older build or a custom install that excludes Zalo, install a +current npm package when one is published: - Install via CLI: `openclaw plugins install @openclaw/zalo` - Or from a source checkout: `openclaw plugins install ./path/to/local/zalo-plugin` - Details: [Plugins](/tools/plugin) +If npm reports the OpenClaw-owned package as deprecated, use a current packaged +OpenClaw build or the local checkout path until a newer npm package is +published. + ## Quick setup (beginner) 1. Ensure the Zalo plugin is available. diff --git a/docs/channels/zalouser.md b/docs/channels/zalouser.md index 84236ff8675..f40eab2b7bb 100644 --- a/docs/channels/zalouser.md +++ b/docs/channels/zalouser.md @@ -18,12 +18,16 @@ Zalo Personal ships as a bundled plugin in current OpenClaw releases, so normal packaged builds do not need a separate install. If you are on an older build or a custom install that excludes Zalo Personal, -install it manually: +install a current npm package when one is published: - Install via CLI: `openclaw plugins install @openclaw/zalouser` - Or from a source checkout: `openclaw plugins install ./path/to/local/zalouser-plugin` - Details: [Plugins](/tools/plugin) +If npm reports the OpenClaw-owned package as deprecated, use a current packaged +OpenClaw build or the local checkout path until a newer npm package is +published. + No external `zca`/`openzca` CLI binary is required. ## Quick setup (beginner) diff --git a/docs/cli/plugins.md b/docs/cli/plugins.md index af563b951e1..a02c5844b0b 100644 --- a/docs/cli/plugins.md +++ b/docs/cli/plugins.md @@ -79,6 +79,16 @@ openclaw plugins install --marketplace https://github.com// + +ClawHub is the primary distribution and discovery surface for most plugins. Npm +remains a supported fallback and direct-install path. During the migration to +ClawHub, OpenClaw still ships some OpenClaw-owned `@openclaw/*` plugin packages +on npm; those package versions can lag the bundled source between plugin release +trains. If npm reports an OpenClaw-owned plugin package as deprecated, that +published version is an old external artifact; use the plugin bundled with +current OpenClaw or a local checkout until a newer npm package is published. + + If your `plugins` section is backed by a single-file `$include`, `plugins install/update/enable/disable/uninstall` write through to that included file and leave `openclaw.json` untouched. Root includes, include arrays, and includes with sibling overrides fail closed instead of flattening. See [Config includes](/gateway/configuration) for the supported shapes. diff --git a/docs/gateway/config-channels.md b/docs/gateway/config-channels.md index 65790911f3f..dd574bf9fd8 100644 --- a/docs/gateway/config-channels.md +++ b/docs/gateway/config-channels.md @@ -491,7 +491,11 @@ WhatsApp runs through the gateway's web channel (Baileys Web). It starts automat ### Mattermost -Mattermost ships as a plugin: `openclaw plugins install @openclaw/mattermost`. +Mattermost ships as a bundled plugin in current OpenClaw releases. Older or +custom builds can install a current npm package with +`openclaw plugins install @openclaw/mattermost`; if npm reports the +OpenClaw-owned package as deprecated, use the bundled plugin or a local checkout +until a newer npm package is published. ```json5 { diff --git a/docs/plugins/building-plugins.md b/docs/plugins/building-plugins.md index 70695eda068..b2af11bdb8c 100644 --- a/docs/plugins/building-plugins.md +++ b/docs/plugins/building-plugins.md @@ -14,9 +14,9 @@ generation, video generation, web fetch, web search, agent tools, or any combination. You do not need to add your plugin to the OpenClaw repository. Publish to -[ClawHub](/tools/clawhub) or npm and users install with +[ClawHub](/tools/clawhub) and users install with `openclaw plugins install `. OpenClaw tries ClawHub first and -falls back to npm automatically. +falls back to npm automatically for packages that still use npm distribution. ## Prerequisites @@ -136,7 +136,8 @@ and provider plugins have dedicated guides linked above. ``` OpenClaw also checks ClawHub before npm for bare package specs like - `@myorg/openclaw-my-plugin`. + `@myorg/openclaw-my-plugin`; npm remains a fallback for packages that have + not migrated to ClawHub yet. **In-repo plugins:** place under the bundled plugin workspace tree — automatically discovered. diff --git a/docs/plugins/community.md b/docs/plugins/community.md index 33bf3189df1..e63b117ea3b 100644 --- a/docs/plugins/community.md +++ b/docs/plugins/community.md @@ -8,8 +8,9 @@ title: "Community plugins" Community plugins are third-party packages that extend OpenClaw with new channels, tools, providers, or other capabilities. They are built and maintained -by the community, published on [ClawHub](/tools/clawhub) or npm, and -installable with a single command. +by the community, usually published on [ClawHub](/tools/clawhub), and installable +with a single command. Npm remains a supported fallback for packages that have +not moved to ClawHub yet. ClawHub is the canonical discovery surface for community plugins. Do not open docs-only PRs just to add your plugin here for discoverability; publish it on @@ -151,7 +152,8 @@ We welcome community plugins that are useful, documented, and safe to operate. Your plugin must be installable via `openclaw plugins install \`. - Publish to [ClawHub](/tools/clawhub) (preferred) or npm. + Publish to [ClawHub](/tools/clawhub) unless you specifically need npm-only + distribution. See [Building Plugins](/plugins/building-plugins) for the full guide. diff --git a/docs/plugins/sdk-setup.md b/docs/plugins/sdk-setup.md index 53faf62a087..d7e8dde9e5f 100644 --- a/docs/plugins/sdk-setup.md +++ b/docs/plugins/sdk-setup.md @@ -477,7 +477,7 @@ The `ChannelSetupWizard` type supports `credentials`, `textInputs`, `dmPolicy`, ## Publishing and installing -**External plugins:** publish to [ClawHub](/tools/clawhub) or npm, then install: +**External plugins:** publish to [ClawHub](/tools/clawhub), then install: @@ -494,10 +494,11 @@ The `ChannelSetupWizard` type supports `credentials`, `textInputs`, `dmPolicy`, ``` - There is no matching `npm:` override. Use the normal npm package spec when you want the npm path after ClawHub fallback: + Use npm when a package has not moved to ClawHub yet, or when you need a + direct npm install path during migration: ```bash - openclaw plugins install @myorg/openclaw-my-plugin + openclaw plugins install npm:@myorg/openclaw-my-plugin ``` diff --git a/docs/plugins/voice-call.md b/docs/plugins/voice-call.md index 39a39f99657..874f8ab8580 100644 --- a/docs/plugins/voice-call.md +++ b/docs/plugins/voice-call.md @@ -27,7 +27,7 @@ the Gateway, then restart the Gateway to load it. - + ```bash openclaw plugins install @openclaw/voice-call ``` @@ -41,6 +41,10 @@ the Gateway, then restart the Gateway to load it. + If npm reports the OpenClaw-owned package as deprecated, that package version + is from an older external package train; use a current packaged OpenClaw + build or the local folder path until a newer npm package is published. + Restart the Gateway afterwards so the plugin loads. diff --git a/docs/plugins/zalouser.md b/docs/plugins/zalouser.md index 9701db9ff88..dbab514b505 100644 --- a/docs/plugins/zalouser.md +++ b/docs/plugins/zalouser.md @@ -34,6 +34,10 @@ No external `zca`/`openzca` CLI binary is required. openclaw plugins install @openclaw/zalouser ``` +If npm reports the OpenClaw-owned package as deprecated, that package version is +from an older external package train; use a current packaged OpenClaw build or +the local folder path until a newer npm package is published. + Restart the Gateway afterwards. ### Option B: install from a local folder (dev) diff --git a/docs/tools/plugin.md b/docs/tools/plugin.md index c3b8860e47d..edece4b8363 100644 --- a/docs/tools/plugin.md +++ b/docs/tools/plugin.md @@ -12,7 +12,9 @@ Plugins extend OpenClaw with new capabilities: channels, model providers, agent harnesses, tools, skills, speech, realtime transcription, realtime voice, media-understanding, image generation, video generation, web fetch, web search, and more. Some plugins are **core** (shipped with OpenClaw), others -are **external** (published on npm by the community). +are **external**. Most external plugins are published and discovered through +[ClawHub](/tools/clawhub). Npm remains supported for direct installs and for a +temporary set of OpenClaw-owned plugin packages while that migration finishes. ## Quick start @@ -26,7 +28,7 @@ are **external** (published on npm by the community). ```bash # From npm - openclaw plugins install @openclaw/voice-call + openclaw plugins install npm:@acme/openclaw-plugin # From a local directory or archive openclaw plugins install ./my-plugin @@ -48,9 +50,9 @@ are **external** (published on npm by the community). If you prefer chat-native control, enable `commands.plugins: true` and use: ```text -/plugin install clawhub:@openclaw/voice-call -/plugin show voice-call -/plugin enable voice-call +/plugin install clawhub: +/plugin show +/plugin enable ``` The install path uses the same resolver as the CLI: local path/archive, explicit @@ -130,16 +132,33 @@ plugin discovery rather than silently falling back to source paths. ## Official plugins -### Installable (npm) +### OpenClaw-owned npm packages during migration -| Plugin | Package | Docs | -| --------------- | ---------------------- | ------------------------------------ | -| Matrix | `@openclaw/matrix` | [Matrix](/channels/matrix) | -| Microsoft Teams | `@openclaw/msteams` | [Microsoft Teams](/channels/msteams) | -| Nostr | `@openclaw/nostr` | [Nostr](/channels/nostr) | -| Voice Call | `@openclaw/voice-call` | [Voice Call](/plugins/voice-call) | -| Zalo | `@openclaw/zalo` | [Zalo](/channels/zalo) | -| Zalo Personal | `@openclaw/zalouser` | [Zalo Personal](/plugins/zalouser) | +ClawHub is the primary distribution path for most plugins. Current packaged +OpenClaw releases already bundle many official plugins, so those do not need +separate npm installs in normal setups. Until every OpenClaw-owned plugin has +migrated to ClawHub, OpenClaw still ships some `@openclaw/*` plugin packages on +npm for older/custom installs and direct npm workflows. + +If npm reports an `@openclaw/*` plugin package as deprecated, that package +version is from an older external package train. Use the bundled plugin from +current OpenClaw or a local checkout until a newer npm package is published. + +| Plugin | Package | Docs | +| --------------- | -------------------------- | ------------------------------------------ | +| BlueBubbles | `@openclaw/bluebubbles` | [BlueBubbles](/channels/bluebubbles) | +| Discord | `@openclaw/discord` | [Discord](/channels/discord) | +| Feishu | `@openclaw/feishu` | [Feishu](/channels/feishu) | +| Matrix | `@openclaw/matrix` | [Matrix](/channels/matrix) | +| Mattermost | `@openclaw/mattermost` | [Mattermost](/channels/mattermost) | +| Microsoft Teams | `@openclaw/msteams` | [Microsoft Teams](/channels/msteams) | +| Nextcloud Talk | `@openclaw/nextcloud-talk` | [Nextcloud Talk](/channels/nextcloud-talk) | +| Nostr | `@openclaw/nostr` | [Nostr](/channels/nostr) | +| Synology Chat | `@openclaw/synology-chat` | [Synology Chat](/channels/synology-chat) | +| Tlon | `@openclaw/tlon` | [Tlon](/channels/tlon) | +| WhatsApp | `@openclaw/whatsapp` | [WhatsApp](/channels/whatsapp) | +| Zalo | `@openclaw/zalo` | [Zalo](/channels/zalo) | +| Zalo Personal | `@openclaw/zalouser` | [Zalo Personal](/plugins/zalouser) | ### Core (shipped with OpenClaw)