fix(plugins): keep bare installs on npm for launch

This commit is contained in:
Vincent Koc
2026-05-02 11:57:07 -07:00
parent a7a6d24147
commit cf21bcf9bf
14 changed files with 64 additions and 286 deletions

View File

@@ -197,7 +197,7 @@ openclaw hooks disable command-logger
## Install hook packs
```bash
openclaw plugins install <package> # ClawHub first, then npm
openclaw plugins install <package> # npm by default
openclaw plugins install npm:<package> # npm only
openclaw plugins install <package> --pin # pin version
openclaw plugins install <path> # local path

View File

@@ -68,7 +68,7 @@ Native OpenClaw plugins must ship `openclaw.plugin.json` with an inline JSON Sch
```bash
openclaw plugins search "calendar" # search ClawHub plugins
openclaw plugins install <package> # ClawHub first, then npm
openclaw plugins install <package> # npm by default
openclaw plugins install clawhub:<package> # ClawHub only
openclaw plugins install npm:<package> # npm only
openclaw plugins install git:github.com/<owner>/<repo> # git repo
@@ -83,7 +83,7 @@ openclaw plugins install <plugin> --marketplace https://github.com/<owner>/<repo
```
<Warning>
Bare package names are checked against ClawHub first, then npm. Treat plugin installs like running code. Prefer pinned versions.
Bare package names install from npm by default during the launch cutover. Use `clawhub:<package>` for ClawHub. Treat plugin installs like running code. Prefer pinned versions.
</Warning>
`plugins search` queries ClawHub for installable plugin packages and prints
@@ -129,7 +129,7 @@ current OpenClaw or a local checkout until a newer npm package is published.
Npm specs are **registry-only** (package name + optional **exact version** or **dist-tag**). Git/URL/file specs and semver ranges are rejected. Dependency installs run project-local with `--ignore-scripts` for safety, even when your shell has global npm install settings.
Use `npm:<package>` when you want to skip ClawHub lookup and install directly from npm. Bare package specs still prefer ClawHub and only fall back to npm when ClawHub does not have that package or version.
Use `npm:<package>` when you want to make npm resolution explicit. Bare package specs also install directly from npm during the launch cutover.
Bare specs and `@latest` stay on the stable track. If npm resolves either of those to a prerelease, OpenClaw stops and asks you to opt in explicitly with a prerelease tag such as `@beta`/`@rc` or an exact prerelease version such as `@1.2.3-beta.4`.
@@ -159,13 +159,13 @@ openclaw plugins install clawhub:openclaw-codex-app-server
openclaw plugins install clawhub:openclaw-codex-app-server@1.2.3
```
OpenClaw now also prefers ClawHub for bare npm-safe plugin specs. It only falls back to npm if ClawHub does not have that package or version:
Bare npm-safe plugin specs install from npm by default during the launch cutover:
```bash
openclaw plugins install openclaw-codex-app-server
```
Use `npm:` to force npm-only resolution, for example when ClawHub is unreachable or you know the package exists only on npm:
Use `npm:` to make npm-only resolution explicit:
```bash
openclaw plugins install npm:openclaw-codex-app-server

View File

@@ -15,8 +15,8 @@ combination.
You do not need to add your plugin to the OpenClaw repository. Publish to
[ClawHub](/tools/clawhub) and users install with
`openclaw plugins install <package-name>`. OpenClaw tries ClawHub first and
falls back to npm automatically for packages that still use npm distribution.
`openclaw plugins install clawhub:<package-name>`. Bare package specs still
install from npm during the launch cutover.
## Prerequisites
@@ -141,9 +141,8 @@ and provider plugins have dedicated guides linked above.
openclaw plugins install clawhub:@myorg/openclaw-my-plugin
```
OpenClaw also checks ClawHub before npm for bare package specs like
`@myorg/openclaw-my-plugin`; npm remains a fallback for packages that have
not migrated to ClawHub yet.
Bare package specs like `@myorg/openclaw-my-plugin` install from npm during
the launch cutover. Use `clawhub:` when you want ClawHub resolution.
**In-repo plugins:** place under the bundled plugin workspace tree — automatically discovered.

View File

@@ -9,18 +9,18 @@ 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, 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.
with a single command. Npm remains the launch default for bare package specs
while ClawHub pack installs roll out.
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
ClawHub instead.
```bash
openclaw plugins install <package-name>
openclaw plugins install clawhub:<package-name>
```
OpenClaw checks ClawHub first and falls back to npm automatically.
Use `openclaw plugins install <package-name>` for npm-hosted packages.
## Listed plugins

View File

@@ -495,12 +495,12 @@ The `ChannelSetupWizard` type supports `credentials`, `textInputs`, `dmPolicy`,
**External plugins:** publish to [ClawHub](/tools/clawhub), then install:
<Tabs>
<Tab title="Auto (ClawHub then npm)">
<Tab title="npm">
```bash
openclaw plugins install @myorg/openclaw-my-plugin
```
OpenClaw tries ClawHub first and falls back to npm automatically.
Bare package specs install from npm during the launch cutover.
</Tab>
<Tab title="ClawHub only">

View File

@@ -66,16 +66,15 @@ Site: [clawhub.ai](https://clawhub.ai)
```
`plugins search` queries the ClawHub plugin catalog and prints install-ready
package names. Bare npm-safe plugin specs use ClawHub only after package
readiness says the package is install-ready for OpenClaw; otherwise OpenClaw
preserves npm fallback:
package names. Use `clawhub:<package>` when you want ClawHub resolution.
Bare npm-safe plugin specs install from npm during the launch cutover:
```bash
openclaw plugins install openclaw-codex-app-server
```
Use `npm:<package>` when you want npm-only resolution without a
ClawHub lookup:
`npm:<package>` is also npm-only and is useful when a spec could otherwise
be ambiguous:
```bash
openclaw plugins install npm:openclaw-codex-app-server

View File

@@ -90,7 +90,7 @@ If you prefer chat-native control, enable `commands.plugins: true` and use:
The install path uses the same resolver as the CLI: local path/archive, explicit
`clawhub:<pkg>`, explicit `npm:<pkg>`, explicit `git:<repo>`, or bare package
spec (ClawHub first, then npm fallback).
spec through npm.
If config is invalid, install normally fails closed and points you at
`openclaw doctor --fix`. The only recovery exception is a narrow bundled-plugin
@@ -467,7 +467,7 @@ openclaw plugins registry # inspect persisted registry state
openclaw plugins registry --refresh # rebuild persisted registry
openclaw doctor --fix # repair plugin registry state
openclaw plugins install <package> # install (readiness-gated ClawHub, then npm)
openclaw plugins install <package> # install from npm by default
openclaw plugins install clawhub:<pkg> # install from ClawHub only
openclaw plugins install npm:<pkg> # install from npm only
openclaw plugins install git:<repo> # install from git