feat(cli): unify hook pack installs under plugins

This commit is contained in:
Peter Steinberger
2026-03-22 11:19:07 -07:00
parent b44152fcc8
commit aa80b1eb7c
8 changed files with 740 additions and 400 deletions

View File

@@ -8,7 +8,7 @@ title: "plugins"
# `openclaw plugins`
Manage Gateway plugins/extensions and compatible bundles.
Manage Gateway plugins/extensions, hook packs, and compatible bundles.
Related:
@@ -55,6 +55,10 @@ openclaw plugins install <plugin> --marketplace <marketplace>
Security note: treat plugin installs like running code. Prefer pinned versions.
`plugins install` is also the install surface for hook packs that expose
`openclaw.hooks` in `package.json`. Use `openclaw hooks` for filtered hook
visibility and per-hook enablement, not package installation.
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 with `--ignore-scripts` for safety.
@@ -164,8 +168,8 @@ openclaw plugins update <id-or-npm-spec> --dry-run
openclaw plugins update @openclaw/voice-call@beta
```
Updates apply to tracked installs in `plugins.installs`, including npm,
ClawHub, and marketplace installs.
Updates apply to tracked installs in `plugins.installs` and tracked hook-pack
installs in `hooks.internal.installs`.
When you pass a plugin id, OpenClaw reuses the recorded install spec for that
plugin. That means previously stored dist-tags such as `@beta` and exact pinned