Skip to content

Plugins

Plugins

Plugins extend RemoteClaw with new capabilities: channels, model providers, tools, skills, speech, image generation, and more. Some plugins are core (shipped with RemoteClaw), others are external (published on npm by the community).

Quick start

```bash remoteclaw plugins list ``` ```bash # From npm remoteclaw plugins install @remoteclaw/voice-call
# From a local directory or archive
remoteclaw plugins install ./my-plugin
remoteclaw plugins install ./my-plugin.tgz
```
```bash remoteclaw gateway restart ```
Then configure under `plugins.entries.\<id\>.config` in your config file.

If you prefer chat-native control, enable commands.plugins: true and use:

/plugin install clawhub:@remoteclaw/voice-call
/plugin show voice-call
/plugin enable voice-call

The install path uses the same resolver as the CLI: local path/archive, explicit clawhub:<pkg>, or bare package spec (ClawHub first, then npm fallback).

Plugin types

RemoteClaw recognizes two plugin formats:

FormatHow it worksExamples
Nativeremoteclaw.plugin.json + runtime module; executes in-processOfficial plugins, community npm packages
BundleCodex/Claude/Cursor-compatible layout; mapped to RemoteClaw features.codex-plugin/, .claude-plugin/, .cursor-plugin/

Both show up under remoteclaw 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)

PluginPackageDocs
Matrix@remoteclaw/matrixMatrix
Microsoft Teams@remoteclaw/msteamsMicrosoft Teams
Nostr@remoteclaw/nostrNostr
Voice Call@remoteclaw/voice-callVoice Call
Zalo@remoteclaw/zaloZalo
Zalo Personal@remoteclaw/zalouserZalo Personal

Core (shipped with RemoteClaw)

`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`, `zai` - `memory-core` — bundled memory search (default via `plugins.slots.memory`) - `memory-lancedb` — install-on-demand long-term memory with auto-recall/capture (set `plugins.slots.memory = "memory-lancedb"`) `elevenlabs`, `microsoft` - `copilot-proxy` — VS Code Copilot Proxy bridge (disabled by default)

Looking for third-party plugins? See Community Plugins.

Configuration

{
plugins: {
enabled: true,
allow: ["voice-call"],
deny: ["untrusted-plugin"],
load: { paths: ["~/Projects/oss/voice-call-extension"] },
entries: {
"voice-call": { enabled: true, config: { provider: "twilio" } },
},
},
}
FieldDescription
enabledMaster toggle (default: true)
allowPlugin allowlist (optional)
denyPlugin denylist (optional; deny wins)
load.pathsExtra plugin files/directories
slotsExclusive slot selectors (e.g. memory, contextEngine)
entries.\<id\>Per-plugin toggles + config

Config changes require a gateway restart. If the Gateway is running with config watch + in-process restart enabled (the default remoteclaw gateway path), that restart is usually performed automatically a moment after the config write lands.

- **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

RemoteClaw scans for plugins in this order (first match wins):

`plugins.load.paths` — explicit file or directory paths. `\/.remoteclaw/extensions/*.ts` and `\/.remoteclaw/extensions/*/index.ts`. `~/.remoteclaw/extensions/*.ts` and `~/.remoteclaw/extensions/*/index.ts`. Shipped with RemoteClaw. Many are enabled by default (model providers, speech). Others require explicit enablement.

Enablement rules

  • plugins.enabled: false disables all plugins
  • plugins.deny always wins over allow
  • plugins.entries.\<id\>.enabled: false disables 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):

{
plugins: {
slots: {
memory: "memory-core", // or "none" to disable
contextEngine: "legacy", // or a plugin id
},
},
}
SlotWhat it controlsDefault
memoryActive memory pluginmemory-core
contextEngineActive context enginelegacy (built-in)

CLI reference

Terminal window
remoteclaw plugins list # compact inventory
remoteclaw plugins inspect <id> # deep detail
remoteclaw plugins inspect <id> --json # machine-readable
remoteclaw plugins status # operational summary
remoteclaw plugins doctor # diagnostics
remoteclaw plugins install <package> # install (ClawHub first, then npm)
remoteclaw plugins install clawhub:<pkg> # install from ClawHub only
remoteclaw plugins install <path> # install from local path
remoteclaw plugins install -l <path> # link (no copy) for dev
remoteclaw plugins update <id> # update one plugin
remoteclaw plugins update --all # update all
remoteclaw plugins enable <id>
remoteclaw plugins disable <id>

See remoteclaw plugins CLI reference for full details.

Plugin API overview

Plugins export either a function or an object with register(api):

export default definePluginEntry({
id: "my-plugin",
name: "My Plugin",
register(api) {
api.registerProvider({
/* ... */
});
api.registerTool({
/* ... */
});
api.registerChannel({
/* ... */
});
},
});

Common registration methods:

MethodWhat it registers
registerProviderModel provider (LLM)
registerChannelChat channel
registerToolAgent tool
registerHook / on(...)Lifecycle hooks
registerSpeechProviderText-to-speech / STT
registerMediaUnderstandingProviderImage/audio analysis
registerImageGenerationProviderImage generation
registerWebSearchProviderWeb search
registerHttpRouteHTTP endpoint
registerCommand / registerCliCLI commands
registerContextEngineContext engine
registerServiceBackground service