Tools & plugins
Using GitHub with OpenClaw
Browse more in Tools & plugins.
All tools & plugins guides →This guide shows you how to work with OpenClaw plugins so you can wire your agents into external systems like GitHub using the plugin system. You will install plugins, control them from the CLI and chat commands, and configure plugin entries in your OpenClaw config.
By the end, you will know how to list, install, enable, and configure plugins that expose tools for GitHub or any other integration.
Prerequisites
- ✓An OpenClaw Gateway already installed and runnable with the `openclaw` CLI available on your PATH.
- ✓Access to your OpenClaw configuration file so you can edit the `plugins` section and restart the gateway.
- ✓Network access from your OpenClaw host to npm and any external services your plugins will call.
Steps
- 1
Inspect which plugins OpenClaw already loads
Before you add a GitHub-related plugin, see what OpenClaw already ships and which plugins are active. This helps you avoid duplicate installs and understand whether a capability is coming from a bundled plugin or something you added.
bashopenclaw plugins list - 2
Install a plugin from npm or a local path
Use the plugin installer to pull plugins from npm or from a local directory/archive. This is how you would bring in a GitHub integration plugin published on npm or one you are developing locally.
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
Restart the OpenClaw Gateway after installing plugins
OpenClaw only picks up new plugins and config changes after a gateway restart. If you forget this, you will wonder why your new plugin or updated config is not taking effect.
bashopenclaw gateway restart - 4
Configure plugin entries and allowlists in your config file
After installation, configure plugins under the `plugins` section so OpenClaw knows which ones to enable and how to pass provider-specific settings. This is where you would enable a GitHub plugin by id and set any required config fields.
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" } }, }, }, } - 5
Control plugins from chat with slash commands
If you prefer to manage plugins without leaving your chat client, enable chat-native plugin commands. This lets you install, inspect, and enable plugins (including any GitHub integration) directly from a conversation.
bash/plugin install clawhub:@openclaw/voice-call /plugin show voice-call /plugin enable voice-call - 6
Use the plugin CLI to inspect, enable, and disable plugins
Once your plugins are installed, use the CLI to inspect details, enable or disable them, and run diagnostics. This is essential when debugging why a GitHub plugin is not loading or appears disabled.
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> - 7
Set plugin slots when you need exclusive categories
Some plugin categories are exclusive, like memory and context engines. If your GitHub integration ships as a context engine or memory plugin, you need to select it explicitly in the `slots` section so OpenClaw uses it instead of the default.
json{ plugins: { slots: { memory: "memory-core", // or "none" to disable contextEngine: "legacy", // or a plugin 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 looks for plugin code. | |
| 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. | memory-core |
| plugins.slots.contextEngine | Selects the active context engine implementation. | legacy |
Troubleshooting
A plugin you configured does not appear in `openclaw plugins list --enabled`.
OpenClaw treats plugins as disabled if enablement rules turn them off. enabled` is not set to `false`.
openclaw plugins list --verboseConfig changes for a plugin do not seem to take effect after editing the config file.
Plugin config changes require a gateway restart before they apply. Restart the gateway so it reloads the updated `plugins` section; if config watch is enabled, the restart usually happens automatically after the write.
openclaw gateway restartPlugin install fails with a message about invalid config and suggests running a doctor command.
When plugin config is invalid, installs fail closed and point you at the doctor command. Run the doctor with the fix flag so OpenClaw can diagnose and repair common configuration issues.
openclaw doctor --fixA plugin you referenced in config shows as missing in diagnostics.
OpenClaw marks a plugin as missing when discovery cannot find its id in any of the scan locations. openclaw` directory.
openclaw plugins doctorFrequently 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.