Plugin Structure
A plugin is an object that implements thePlugin interface:
Creating Your First Plugin
Plugin Components
Actions
Actions are behaviors the agent can perform. See the Custom Actions guide for details.Providers
Providers supply context to the agent before generating responses:Evaluators
Evaluators process messages after they’re sent/received to extract information:Services
Services provide long-running functionality and can be accessed from actions:Plugin Discovery
ElizaOS automatically discovers plugins in these locations (in order):- Config paths - Paths specified in configuration
- Workspace plugins -
./plugins/,./extensions/,./.elizaos/plugins/ - Global plugins -
~/.elizaos/plugins/ - Bundled plugins - Plugins bundled with elizaOS
- npm packages - Packages with
elizaosmetadata inpackage.json
Package.json Configuration
For npm packages, add elizaOS metadata:package.json
Bootstrap Plugin Example
The bootstrap plugin shows advanced plugin structure with capability levels:Reference: packages/typescript/src/bootstrap/index.ts
Plugin Best Practices
Publishing Plugins
Example Plugins
Study these built-in plugins for inspiration:- Bootstrap Plugin (
packages/typescript/src/bootstrap/) - Core actions and providers - Plugin packages in the elizaOS monorepo
Next Steps
Custom Actions
Learn how to build sophisticated action handlers
Testing
Test your plugins thoroughly