<< All versions
Skill v1.0.1
currentAutomated scan96/100alsk1992/cloddsbot/plugins
2 files
──Details
PublishedSeptember 9, 2026 at 01:09 AM
Content Hashsha256:7712cba9ae369478...
Git SHA715fd4a6c06b
Bump Typepatch
──Files
Files (1 file, 5.6 KB)
SKILL.md5.6 KBactive
SKILL.md · 265 lines · 5.6 KB
version: "1.0.1" name: plugins description: "Plugin management, installation, and lifecycle control" emoji: "🧩"
Plugins - Complete API Reference
Install, manage, and configure plugins to extend Clodds functionality.
Chat Commands
List Plugins
/plugins List installed plugins/plugins available Browse available plugins/plugins search <query> Search plugin registry
Install/Remove
/plugins install <name> Install from registry/plugins install <url> Install from URL/plugins uninstall <id> Remove plugin/plugins update <id> Update plugin/plugins update-all Update all plugins
Enable/Disable
/plugins enable <id> Enable plugin/plugins disable <id> Disable plugin/plugins restart <id> Restart plugin
Configuration
/plugins config <id> View plugin settings/plugins set <id> <key> <value> Update setting/plugins reset <id> Reset to defaults
TypeScript API Reference
Create Plugin Manager
typescript
import { createPluginManager } from 'clodds/plugins';const plugins = createPluginManager({// Plugin directorypluginDir: './plugins',// Registry URLregistry: 'https://plugins.clodds.ai',// Auto-updateautoUpdate: true,updateCheckIntervalMs: 86400000, // Daily});
List Plugins
typescript
// Get installed pluginsconst installed = plugins.list();for (const plugin of installed) {console.log(`${plugin.id}: ${plugin.name} v${plugin.version}`);console.log(` Status: ${plugin.status}`); // 'enabled' | 'disabled' | 'error'console.log(` Description: ${plugin.description}`);}
Install Plugin
typescript
// Install from registryawait plugins.install('advanced-charts');// Install from URLawait plugins.install('https://github.com/user/plugin/releases/latest/plugin.zip');// Install from local pathawait plugins.install('/path/to/plugin');
Enable/Disable
typescript
// Enable pluginawait plugins.enable('advanced-charts');// Disable pluginawait plugins.disable('advanced-charts');// Check statusconst status = plugins.getStatus('advanced-charts');console.log(`Enabled: ${status.enabled}`);
Configure Plugin
typescript
// Get plugin settingsconst settings = plugins.getSettings('advanced-charts');console.log(settings);// Update settingsawait plugins.setSettings('advanced-charts', {theme: 'dark',refreshInterval: 5000,});// Reset to defaultsawait plugins.resetSettings('advanced-charts');
Uninstall Plugin
typescript
await plugins.uninstall('advanced-charts');
Create Custom Plugin
typescript
// plugins/my-plugin/index.tsimport { Plugin, PluginContext } from 'clodds/plugins';export default class MyPlugin implements Plugin {id = 'my-plugin';name = 'My Custom Plugin';version = '1.0.0';description = 'Adds custom functionality';// Default settingsdefaultSettings = {enabled: true,threshold: 0.5,};async onLoad(ctx: PluginContext) {console.log('Plugin loaded!');// Register commandsctx.registerCommand({name: 'my-command',description: 'Does something cool',handler: async (args) => {return `Result: ${args.join(' ')}`;},});// Register toolsctx.registerTool({name: 'my-tool',description: 'A custom tool',execute: async (params) => {return { result: 'success' };},});// Subscribe to eventsctx.on('message', async (msg) => {if (msg.content.includes('hello')) {await ctx.reply('Hello back!');}});}async onUnload(ctx: PluginContext) {console.log('Plugin unloaded!');}async onSettingsChange(settings: any, ctx: PluginContext) {console.log('Settings updated:', settings);}}
Plugin Lifecycle
typescript
// Eventsplugins.on('installed', (plugin) => {console.log(`Installed: ${plugin.name}`);});plugins.on('enabled', (plugin) => {console.log(`Enabled: ${plugin.name}`);});plugins.on('disabled', (plugin) => {console.log(`Disabled: ${plugin.name}`);});plugins.on('error', (plugin, error) => {console.error(`Plugin error: ${plugin.name}`, error);});
Plugin Structure
my-plugin/├── index.ts # Main plugin file├── package.json # Plugin metadata├── settings.json # Default settings├── commands/ # Command handlers├── tools/ # Tool definitions└── assets/ # Static assets
package.json
json
{"name": "my-plugin","version": "1.0.0","description": "My custom plugin","main": "index.ts","clodds": {"minVersion": "0.1.0","permissions": ["network", "storage"],"commands": ["my-command"],"tools": ["my-tool"]}}
Plugin Permissions
| Permission | Access | |
|---|---|---|
network | HTTP/WebSocket requests | |
storage | Local file storage | |
exec | Shell command execution | |
trading | Trading APIs | |
memory | User memory access |
Best Practices
- Minimal permissions — Only request what you need
- Handle errors — Don't crash on plugin errors
- Clean unload — Release resources on unload
- Version compatibility — Check minVersion
- Document settings — Explain configuration options