diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index ba8464ca8..5e43e4e87 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "e899b32e1d7917be5307e4c0fd10ba54a1b7845b", - "syncedAt": "2026-04-27T09:17:50.973Z" + "sha": "cb9955dd5cf2e465c373f1ef99d074cdd0fbb60c", + "syncedAt": "2026-04-27T09:18:11.580Z" } diff --git a/docs/cli/plugins.md b/docs/cli/plugins.md index d6365037d..7b1bbdb90 100644 --- a/docs/cli/plugins.md +++ b/docs/cli/plugins.md @@ -61,6 +61,7 @@ Native OpenClaw plugins must ship `openclaw.plugin.json` with an inline JSON Sch ```bash openclaw plugins install # ClawHub first, then npm openclaw plugins install clawhub: # ClawHub only +openclaw plugins install npm: # npm only openclaw plugins install --force # overwrite existing install openclaw plugins install --pin # pin version openclaw plugins install --dangerously-force-unsafe-install @@ -101,6 +102,8 @@ Bare package names are checked against ClawHub first, then npm. Treat plugin ins 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:` 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. + 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`. If a bare install spec matches a bundled plugin id (for example `diffs`), OpenClaw installs the bundled plugin directly. To install an npm package with the same name, use an explicit scoped spec (for example `@scope/diffs`). @@ -127,6 +130,13 @@ OpenClaw now also prefers ClawHub for bare npm-safe plugin specs. It only falls 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: + +```bash +openclaw plugins install npm:openclaw-codex-app-server +openclaw plugins install npm:@scope/plugin-name@1.0.1 +``` + OpenClaw downloads the package archive from ClawHub, checks the advertised plugin API / minimum gateway compatibility, then installs it through the normal archive path. Recorded installs keep their ClawHub source metadata for later updates. #### Marketplace shorthand diff --git a/docs/tools/plugin.md b/docs/tools/plugin.md index f3ac362fd..7774a1db9 100644 --- a/docs/tools/plugin.md +++ b/docs/tools/plugin.md @@ -54,7 +54,8 @@ 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:`, or bare package spec (ClawHub first, then npm fallback). +`clawhub:`, explicit `npm:`, or bare package spec (ClawHub first, then +npm fallback). If config is invalid, install normally fails closed and points you at `openclaw doctor --fix`. The only recovery exception is a narrow bundled-plugin @@ -343,6 +344,7 @@ openclaw doctor --fix # repair plugin registry state openclaw plugins install # install (ClawHub first, then npm) openclaw plugins install clawhub: # install from ClawHub only +openclaw plugins install npm: # install from npm only openclaw plugins install --force # overwrite existing install openclaw plugins install # install from local path openclaw plugins install -l # link (no copy) for dev