Plugins
Plugins extend OpenClaw with new capabilities: channels, model providers, tools, skills, speech, image generation, and more. Some plugins are core (shipped with OpenClaw), others are external (published on npm by the community).Quick start
1
See what is loaded
2
Install a plugin
3
Restart the Gateway
plugins.entries.\<id\>.config in your config file.commands.plugins: true and use:
clawhub:<pkg>, or bare package spec (ClawHub first, then npm fallback).
Plugin types
OpenClaw recognizes two plugin formats:
Both show up under
openclaw plugins list. See Plugin Bundles for bundle details.
If you are writing a native plugin, start with Building Plugins
and the Plugin SDK Overview.
Official plugins
Installable (npm)
Core (shipped with OpenClaw)
Model providers (enabled by default)
Model providers (enabled by default)
anthropic, byteplus, cloudflare-ai-gateway, github-copilot, google,
huggingface, kilocode, kimi-coding, minimax, mistral, modelstudio,
moonshot, nvidia, openai, opencode, opencode-go, openrouter,
qianfan, qwen-portal-auth, synthetic, together, venice,
vercel-ai-gateway, volcengine, xiaomi, zaiMemory plugins
Memory plugins
memory-core— bundled memory search (default viaplugins.slots.memory)memory-lancedb— install-on-demand long-term memory with auto-recall/capture (setplugins.slots.memory = "memory-lancedb")
Speech providers (enabled by default)
Speech providers (enabled by default)
elevenlabs, microsoftOther
Other
copilot-proxy— VS Code Copilot Proxy bridge (disabled by default)
Configuration
Config changes require a gateway restart. If the Gateway is running with config
watch + in-process restart enabled (the default
openclaw gateway path), that
restart is usually performed automatically a moment after the config write lands.
Plugin states: disabled vs missing vs invalid
Plugin states: disabled vs missing vs invalid
- Disabled: plugin exists but enablement rules turned it off. Config is preserved.
- Missing: config references a plugin id that discovery did not find.
- Invalid: plugin exists but its config does not match the declared schema.
Discovery and precedence
OpenClaw scans for plugins in this order (first match wins):1
Config paths
plugins.load.paths — explicit file or directory paths.2
Workspace extensions
\<workspace\>/.openclaw/extensions/*.ts and \<workspace\>/.openclaw/extensions/*/index.ts.3
Global extensions
~/.openclaw/extensions/*.ts and ~/.openclaw/extensions/*/index.ts.4
Bundled plugins
Shipped with OpenClaw. Many are enabled by default (model providers, speech).
Others require explicit enablement.
Enablement rules
plugins.enabled: falsedisables all pluginsplugins.denyalways wins over allowplugins.entries.\<id\>.enabled: falsedisables that plugin- Workspace-origin plugins are disabled by default (must be explicitly enabled)
- Bundled plugins follow the built-in default-on set unless overridden
- Exclusive slots can force-enable the selected plugin for that slot
Plugin slots (exclusive categories)
Some categories are exclusive (only one active at a time):CLI reference
openclaw plugins CLI reference for full details.
Plugin API overview
Plugins export either a function or an object withregister(api):
Related
- Building Plugins — create your own plugin
- Plugin Bundles — Codex/Claude/Cursor bundle compatibility
- Plugin Manifest — manifest schema
- Registering Tools — add agent tools in a plugin
- Plugin Internals — capability model and load pipeline
- Community Plugins — third-party listings