Tools & plugins
Using Notion with OpenClaw
Browse more in Tools & plugins.
All tools & plugins guides →This guide shows you how to install, enable, and configure plugins so your OpenClaw agents can call external tools like Notion. You will use the OpenClaw plugin system, CLI, and config file to control which plugins load and how they behave.
By the end, you will have plugins wired into your gateway and know how to debug common plugin issues.
Prerequisites
- ✓An existing OpenClaw installation with the `openclaw` CLI available in your shell.
- ✓A running OpenClaw Gateway started with `openclaw gateway` so config changes trigger automatic restarts.
- ✓Access to your OpenClaw config file where you can edit the `plugins` section.
Steps
- 1
Inspect which plugins OpenClaw already loads
Start by checking what plugins your gateway already sees before you add anything new. This helps you avoid duplicate installs and confirms that plugin discovery works in your environment.
bashopenclaw plugins list - 2
Install a new plugin into OpenClaw
Use the plugin installer to add new capabilities from npm or a local directory. The resolver checks ClawHub first, then falls back to npm, and you can also install from a local path or archive when developing your own plugin.
bash# From npm openclaw plugins install @openclaw/voice-call # From a local directory or archive openclaw plugins install ./my-plugin openclaw plugins install ./my-plugin.tgz - 3
Configure plugin loading and per-plugin settings
After installation, wire the plugin into your config under the `plugins` key. You control global enablement, allow/deny lists, extra load paths, and per-plugin config in one place.
json{ plugins: { enabled: true, allow: ["voice-call"], deny: ["untrusted-plugin"], load: { paths: ["~/Projects/oss/voice-call-extension"] }, entries: { "voice-call": { enabled: true, config: { provider: "twilio" } }, }, }, } - 4
Restart the OpenClaw Gateway to apply plugin changes
Config changes only take effect after a gateway restart. Even if you run with config watch enabled, forcing a restart ensures the new plugin and its config are active.
bashopenclaw gateway restart - 5
Control plugins from chat with slash commands
If you prefer to manage plugins from inside a chat channel, enable chat-native plugin commands. This lets you install, inspect, and enable plugins without dropping to a shell.
text/plugin install clawhub:@openclaw/voice-call /plugin show voice-call /plugin enable voice-call - 6
Tune plugin discovery and precedence
OpenClaw searches several locations for plugins, and the first match wins. Understanding this order helps you override bundled plugins with workspace or global extensions when you need custom behavior.
text<workspace>/.openclaw/<plugin-root>/*.ts and <workspace>/.openclaw/<plugin-root>/*/index.ts. ~/.openclaw/<plugin-root>/*.ts and ~/.openclaw/<plugin-root>/*/index.ts. - 7
Set exclusive plugin slots like memory and context engine
Some plugin categories are exclusive, so you must pick exactly one implementation. slots` to choose which memory plugin and context engine OpenClaw should activate.
json{ plugins: { slots: { memory: "memory-core", // or "none" to disable contextEngine: "legacy", // or a plugin id }, }, } - 8
Use the plugin CLI to inspect, enable, and update plugins
Once plugins are installed, the CLI gives you detailed visibility and lifecycle control. You can list, inspect, enable, disable, update, and uninstall plugins, as well as run diagnostics and query marketplaces.
bashopenclaw plugins list # compact inventory openclaw plugins list --enabled # only loaded plugins openclaw plugins list --verbose # per-plugin detail lines openclaw plugins list --json # machine-readable inventory openclaw plugins inspect <id> # deep detail openclaw plugins inspect <id> --json # machine-readable openclaw plugins inspect --all # fleet-wide table openclaw plugins info <id> # inspect alias openclaw plugins doctor # diagnostics openclaw plugins install <package> # install (ClawHub first, then npm) openclaw plugins install clawhub:<pkg> # install from ClawHub only openclaw plugins install <spec> --force # overwrite existing install openclaw plugins install <path> # install from local path openclaw plugins install -l <path> # link (no copy) for dev openclaw plugins install <plugin> --marketplace <source> openclaw plugins install <plugin> --marketplace https://github.com/<owner>/<repo> openclaw plugins install <spec> --pin # record exact resolved npm spec openclaw plugins install <spec> --dangerously-force-unsafe-install openclaw plugins update <id> # update one plugin openclaw plugins update <id> --dangerously-force-unsafe-install openclaw plugins update --all # update all openclaw plugins uninstall <id> # remove config/install records openclaw plugins uninstall <id> --keep-files openclaw plugins marketplace list <source> openclaw plugins marketplace list <source> --json openclaw plugins enable <id> openclaw plugins disable <id>
Configuration
| Option | Description | Example |
|---|---|---|
| plugins.enabled | Master toggle that turns all plugins on or off. | |
| plugins.allow | Allowlist of plugin IDs that are permitted to run. | |
| plugins.deny | Denylist of plugin IDs that are always blocked, even if allowed elsewhere. | |
| plugins.load.paths | Extra file or directory paths where OpenClaw should look for plugins. | |
| plugins.entries.voice-call.enabled | Per-plugin toggle that enables or disables the `voice-call` plugin. | |
| plugins.entries.voice-call.config.provider | Provider setting for the `voice-call` plugin. | twilio |
| plugins.slots.memory | Selects the active memory plugin or disables memory when set to "none". | memory-core |
| plugins.slots.contextEngine | Selects the active context engine implementation. | legacy |
Troubleshooting
A plugin you configured does not appear in `openclaw plugins list` and shows as missing.
<id>`. ts`.
openclaw plugins list --verboseA plugin shows as invalid and fails to load after you edit its config.
Invalid means the plugin exists but its config does not match the declared schema. config`, then rerun diagnostics and restart the gateway so the plugin can validate again.
openclaw plugins doctorYou install a plugin but it never activates in the gateway.
Config changes require a gateway restart before plugins activate. Restart the gateway with the CLI; if you run `openclaw gateway` with config watch, it usually restarts automatically after the config write.
openclaw gateway restartWorkspace-origin plugins do not run even though they are present under `.openclaw`.
Workspace-origin plugins are disabled by default. enabled: true` or use `openclaw plugins enable <id>` so OpenClaw activates them.
openclaw plugins enable <id>Frequently asked questions
Powered by Mem0
Add persistent memory to OpenClaw
Official Mem0 plugin for OpenClaw keeps context across chats and tools. Smaller prompts, lower cost, better continuity for your agents.