You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Feature] Plugin system for custom tools and commands #5
This is a roadmap feature open for community contribution!
🎯 Overview
We want CrustAI to support a plugin architecture so developers can
add custom commands and tool integrations without modifying the core codebase.
💡 Vision
// Example: a user-created pluginexportdefault{name: 'weather',command: '/weather',description: 'Get current weather for a city',asynchandle({ args, reply }){constdata=awaitfetchWeather(args[0]);reply(`🌤️ ${data.city}: ${data.temp}°C`);}};
Users drop this file into a plugins/ folder and CrustAI auto-loads it.
🏗️ What needs to be built
Plugin loader in src/core/ that scans a plugins/ directory on startup
Plugin interface/contract (what methods a plugin must export)
Command registry that maps /command → plugin handler
2 example plugins to document the pattern:
/weather — simple HTTP fetch
/remind — scheduled message reminder
Documentation in docs/ for plugin authors
✅ Acceptance Criteria
Plugins loaded dynamically at startup with no core code changes
Broken plugins fail gracefully with a warning (no crash)
Works across all adapters (Telegram, Discord, WhatsApp, Slack)
CONTRIBUTING.md updated with plugin development guide
📐 Architecture discussion
Before coding, let's align on the plugin interface.
Please share your design proposal in the comments!
🚀 This is a high-impact architectural feature. Ideal for experienced JS devs
who want to leave a lasting mark on the project. We'll credit you prominently in the README!
Activity