A simple, lightweight, and easily customizable WhatsApp Multi-Device bot with a focus on stability and ease of use.
- Multi-Device Support - Compatible with WhatsApp Multi-Device
- Plugin Architecture - Modular plugin system for easy development
- Lightweight - Built with optimal performance
- Stable - Focus on stability and reliability
- Easy to Use - Simple installation and configuration
Before getting started, ensure your system meets the following requirements:
- Node.js version 20 or higher
- npm or yarn package manager
- Stable internet connection for authentication
Follow these steps to install and run the bot:
git clone https://github.com/AgusXzz/ESEMPE-MD
cd ESEMPE-MDnpm installor using yarn:
yarn installnpm startOn first run, a pairing code will appear in the terminal. Enter this code in your WhatsApp application to complete the authentication process.
Each plugin must follow this standard structure:
/** @type {import('#lib/types.js').Plugin} */
export default {
name: "name", // Plugin name (required)
category: "category", // Plugin category (required)
command: ["command1", "command2"], // Command list (required)
alias: ["cmd1", "cmd2"], // Command aliases (optional)
// Plugin configuration (optional)
settings: {
owner: true, // Owner-only feature
private: false, // Private chat only
group: true, // Group chat only
admin: false, // Group admin only
botAdmin: true, // Bot must be admin
loading: false // Send loading message
},
// Main function called when command is executed (required)
run: async (conn, m, context) => {
const { Api, Func, downloadM, quoted, metadata, isOwner, isAdmin, isBotAdmin } = context;
// Implementation code here
},
// Function called on every incoming message (optional)
on: async (conn, m, context) => {
// Implementation code here
}
};| Parameter | Description |
|---|---|
Api |
Wrapper for API-related functions (see lib/api.js) |
Func |
Collection of utility functions (see lib/function.js) |
downloadM |
Function to download media from messages |
quoted |
Replied message object |
metadata |
Group chat metadata |
isOwner |
Boolean indicating if sender is owner |
isAdmin |
Boolean indicating if sender is group admin |
isBotAdmin |
Boolean indicating if bot is group admin |
For autocomplete and type checking, add JSDoc above export default:
/** @type {import('#lib/types.js').Plugin} */
export default {
// ... plugin code
};ESEMPE-MD/
├── lib/
│ ├── api.js # API wrapper functions
│ ├── color.js # Console color utilities
│ ├── exif.js # EXIF metadata handler
│ ├── function.js # General utility functions
│ ├── loadPlugins.js # Plugin loader system
│ ├── serialize.js # Message serialization
│ └── types.js # TypeScript definitions
├── plugins/
│ ├── downloader/ # Download plugins
│ ├── tools/ # Tool plugins
│ └── utility/ # Utility plugins
├── config.js # Configuration file
├── handler.js # Message handler
├── index.js # Entry point
└── package.json # Package configuration
Contributions from the community are greatly appreciated. To contribute:
- Fork this repository
- Create a branch for your feature:
git checkout -b feat/feature-name - Commit your changes:
git commit -m 'Add: feature description' - Push to the branch:
git push origin feat/feature-name - Create a Pull Request
For major changes, please open an issue first to discuss the changes you would like to make.
This project is licensed under the MIT License. See the LICENSE file for more details.
Maintainer: AgusXzz
Repository: https://github.com/AgusXzz/ESEMPE-MD
Special thanks to the following contributors and projects that have helped in the development of ESEMPE-MD:
Dika Ardnt |
Baileys Library |
Agus |
Senn |
Vcepirit |
Made with ❤️ by the ESEMPE-MD Team
⭐ Don't forget to give a star if this project helps you!