packages/skills/skills/elizaos/references/plugin-development.md
An elizaOS plugin is a plain object that can register:
actionsprovidersservicesmodelsevaluatorsrouteseventsUse for tool execution or side effects.
plugin.actionsUse for state and prompt context.
plugin.providersruntime.composeState(...)text, values, and/or dataUse for long-lived shared logic such as API clients, caches, or background connections.
Use to register inference handlers for text, embeddings, image description, and related model types.
Use for post-response analysis or policy checks.
Use for plugin-owned HTTP endpoints. Routes are namespaced under the plugin name.
At plugin registration:
plugin.init(...) runs firstIn this repo, Eliza adds product behavior around elizaOS, but the underlying runtime composition rules still come from elizaOS. When a Eliza feature behaves strangely, check whether the root cause is actually in: