Plugin System
Overview
Rimuru's plugin system allows you to extend functionality with community-built modules. Plugins can add new agent capabilities, MCP servers, workflow templates, and more.
Architecture
rimuru/
plugins/
rimuru-plugin-<name>/
manifest.json # Plugin metadata
index.js # Plugin entry point
assets/ # Static assets
docs/ # Plugin documentationPlugin Manifest (manifest.json)
{
"name": "rimuru-plugin-docs",
"version": "1.0.0",
"description": "Documentation generation plugin",
"author": "Rimuru Team",
"license": "MIT",
"entry": "index.js",
"capabilities": ["generate-docs"],
"requires": {
"rimuru": ">=1.0.0",
"node": ">=18.0.0"
}
}Installing Plugins
From Marketplace
rimuru plugin install rimuru-plugin-docs
rimuru plugin install rimuru-plugin-testing
rimuru plugin install rimuru-plugin-deployFrom npm
npm install -g rimuru-plugin-custom
rimuru plugin add rimuru-plugin-customFrom Source
git clone https://github.com/rimuru/rimuru-plugin-example
rimuru plugin add ./rimuru-plugin-exampleManaging Plugins
rimuru plugin list # List installed
rimuru plugin info <name> # Show plugin details
rimuru plugin enable <name> # Enable a plugin
rimuru plugin disable <name> # Disable a plugin
rimuru plugin remove <name> # Uninstall a plugin
rimuru plugin update <name> # Update a pluginCreating a Plugin
Quick Start
rimuru plugin create my-plugin
cd rimuru-plugin-my-pluginPlugin Structure
rimuru-plugin-my-plugin/
├── manifest.json
├── index.js
├── assets/
└── README.mdExample Plugin (index.js)
module.exports = {
name: 'my-plugin',
async activate(context) {
// Register a new MCP server
context.registerMCP('my-tool', {
command: 'python',
args: ['server.py']
});
// Add a custom command
context.registerCommand('my-plugin:hello', async () => {
return 'Hello from my plugin!';
});
// Add a workflow template
context.registerTemplate('my-workflow', {
name: 'My Custom Workflow',
agents: ['scraper', 'summarizer']
});
},
async deactivate() {
// Cleanup
}
};Available Plugins
| Plugin | Description | Downloads |
|---|---|---|
| rimuru-plugin-docs | Documentation generation | 50K+ |
| rimuru-plugin-testing | Test automation | 35K+ |
| rimuru-plugin-deploy | Deployment pipelines | 28K+ |
| rimuru-plugin-monitor | Observability | 22K+ |
| rimuru-plugin-codegen | Code generation | 18K+ |
Best Practices
- Use semantic versioning for your plugin
- Include comprehensive documentation
- Test with multiple Rimuru versions
- Handle errors gracefully
- Clean up resources on deactivation
- Follow the naming convention:
rimuru-plugin-<name>