Plugin Entry Points
OpenClaw has two main entry helpers:definePluginEntry(...)for general pluginsdefineChannelPluginEntry(...)for native messaging channels
defineSetupPluginEntry(...) for a separate setup-only module.
definePluginEntry(...)
Use this for providers, tools, commands, services, memory plugins, and context
engines.
defineChannelPluginEntry(...)
Use this for a plugin that registers a ChannelPlugin.
Why registerFull(...) exists
OpenClaw can load plugins in setup-focused registration modes. registerFull
lets a channel plugin skip extra runtime-only registrations such as tools while
still registering the channel capability itself.
Use it for:
- agent tools
- gateway-only routes
- runtime-only commands
ChannelPlugin; that belongs in plugin: ....
defineSetupPluginEntry(...)
Use this when a channel ships a second module for setup flows.
One plugin, many capabilities
A single entry file can register multiple capabilities:Entry-file checklist
- Give the plugin a stable
id. - Keep
nameanddescriptionhuman-readable. - Put schema at the entry level when the plugin has config.
- Register only public capabilities inside
register(api). - Keep channel plugins on
plugin-sdk/core. - Keep non-channel plugins on
plugin-sdk/plugin-entry.