A clean, modular, and production-ready WhatsApp chatbot using personal accounts via Baileys.
Goat WhatsApp Bot was built with a single goal: to offer a lightweight, stable, and developer-friendly chatbot platform for WhatsApp. Itβs crafted from the ground up with clarity, modularity, and maintainability in mind β making it easier for developers to understand, extend, and collaborate on.
With clean, fully readable code (no obfuscation or encryption), this project is designed to help developers of all levels learn, modify, and extend it with confidence.
π― Built for Developers. Shared with the Community.
- π Modular Plugin System β Drop-in commands & event files.
- βοΈ Hot Reload β Update without restarting the bot.
- π Pairing/QR Login β Choose your auth flow.
- π» Dashboard UI β Real-time stats, settings & more.
- π§ Smart Commands β Prebuilt utilities, media, tools.
- π Multilingual Support β Easily extend to other languages.
- π JSON DB (Pluggable) β Add MongoDB, SQLite, etc.
- π Built-in Logger β Simple and effective console outputs.
Follow these steps to get the bot running on your machine.
- Node.js >= 20.x β Download here
- Git (optional but recommended)
- WhatsApp account (use a secondary or throwaway account)
git clone https://github.com/tas33n/Goat-WhatsApp-Bot.git
cd Goat-WhatsApp-Bot
npm install
npm start
The bot will prompt you to scan a QR code (for the first time login).
A ready-to-use Dockerfile
is included with Node.js 20 and FFmpeg preinstalled.
# Build the Docker image
docker build -t goat-whatsapp-bot .
# Run the bot container interactively
docker run -it goat-whatsapp-bot
# Run the bot with persistent session
docker run -it -p 3000:3000 -v $(pwd)/session:/app/session goat-whatsapp-bot
If you want to reuse the session, your credentials are stored locally in session/
folder. Do not share it.
// plugins/commands/ping.js
module.exports = {
config: {
name: "ping",
aliases: ["p"],
description: "Check bot responsiveness.",
author: "Tas33n",
cooldown: 5,
role: 0,
category: "utility"
},
onCmd: async ({ reply }) => {
reply("Pong!");
}
};
// plugins/events/welcome.js
module.exports = {
config: {
name: "welcome",
author: "Anbuinfosec",
category: "events"
},
onEvent: async ({ api, event }) => {
if (event.action !== "add") return;
for (const user of event.participants) {
api.sendMessage(event.id, {
text: `π Welcome @${user.split("@")[0]}`,
mentions: [user]
});
}
}
};
For detailed documentation, see DOCS.md
We welcome contributions from developers of all skill levels! Whether it's fixing bugs, suggesting features, or improving documentation β your input makes this project better.
Please feel free to open an issue or submit a pull request.
This project is licensed under the MIT License, which allows you to use and modify it freely. However, please do not remove author credits or attempt to rebrand this project as your own.
Doing so hurts community collaboration and makes it harder to track real improvements. If you want to build on this, we encourage you to fork it and credit the original authors so others know where the foundation came from.
Letβs build better tools β together.
- π¨βπ» Lead Author: Tas33n
- π‘ Co-Author: Anbuinfosec
- π GoatBot V2 β A Messenger chatbot project that inspired the modular plugin-based architecture and command flow.
- π‘ Baileys β For their awesome WhatsApp Web API library that powers the bot.
- π€ ChatGPT β For help with writing, refactoring, and improving documentation, Docker setup, and best practices.
If you find this project helpful and want to support further development, donations are appreciated π
Binance ID: 471390205
TR95UPDfsB1Ammyj4w62xDuAJEA8wH5GSz
LeaKUHCiAhRa6U3jrQa4bCAvaAfniJ6pXP
16NyoNtkDk8uHejqNsKkhpc8RyPEEfu1m9
This project is licensed under the MIT License β see the LICENSE file.