Files
bot/docs/cli/plugins.md
zooqueen adb8e1f802 feat: merge upstream improvements via rebrand bridge
Squash merge of 1,462 upstream commits with openclaw→hanzo-bot
naming transforms applied. Conflicts resolved favoring our main
branch to preserve existing customizations.

Key upstream additions:
- iOS Security Stack (concurrency locks, runtime guards, TTS fallback)
- Discord CDN hostname allowlisting for SSRF protection
- Discord mention handling improvements
- Various bug fixes and stability improvements
2026-03-03 09:38:30 -08:00

2.4 KiB

summary, read_when, title
summary read_when title
CLI reference for `bot plugins` (list, install, uninstall, enable/disable, doctor)
You want to install or manage in-process Gateway plugins
You want to debug plugin load failures
plugins

bot plugins

Manage Gateway plugins/extensions (loaded in-process).

Related:

Commands

bot plugins list
bot plugins info <id>
bot plugins enable <id>
bot plugins disable <id>
bot plugins uninstall <id>
bot plugins doctor
bot plugins update <id>
bot plugins update --all

Bundled plugins ship with Bot but start disabled. Use plugins enable to activate them.

All plugins must ship a bot.plugin.json file with an inline JSON Schema (configSchema, even if empty). Missing/invalid manifests or schemas prevent the plugin from loading and fail config validation.

Install

bot plugins install <path-or-spec>

Security note: treat plugin installs like running code. Prefer pinned versions.

Npm specs are registry-only (package name + optional version/tag). Git/URL/file specs are rejected. Dependency installs run with --ignore-scripts for safety.

If a bare install spec matches a bundled plugin id (for example diffs), Bot installs the bundled plugin directly. To install an npm package with the same name, use an explicit scoped spec (for example @scope/diffs).

Supported archives: .zip, .tgz, .tar.gz, .tar.

Use --link to avoid copying a local directory (adds to plugins.load.paths):

bot plugins install -l ./my-plugin

Uninstall

bot plugins uninstall <id>
bot plugins uninstall <id> --dry-run
bot plugins uninstall <id> --keep-files

uninstall removes plugin records from plugins.entries, plugins.installs, the plugin allowlist, and linked plugins.load.paths entries when applicable. For active memory plugins, the memory slot resets to memory-core.

By default, uninstall also removes the plugin install directory under the active state dir extensions root ($BOT_STATE_DIR/extensions/<id>). Use --keep-files to keep files on disk.

--keep-config is supported as a deprecated alias for --keep-files.

Update

bot plugins update <id>
bot plugins update --all
bot plugins update <id> --dry-run

Updates only apply to plugins installed from npm (tracked in plugins.installs).