BotsApp is an optimized and easy-to-use WhatsApp UserBot written in Node.js

Overview

💠 BotsApp 💠

Your Personal Assisstant, on WhatsApp!


GitHub top language GitHub release GitHub contributors GitHub closed pull requests GitHub pull requests GitHub Repo stars GitHub repo size

Docker Pulls Docker Image Size

BotsApp is an optimized and easy-to-use WhatsApp UserBot written in Node.js.

Utilize your personal chat assistant/group manager to make the most out of WhatsApp.

Documentation

Documentation Link

Tutorial

Here's a tutorial to set up BotsApp on your own account in less than 3 minutes.

Join WhatsApp Group

Deployment

Easiest Way

You can deploy BotsApp in minimal time without any prior knowledge using this method.

  1. Head over to BotsApp's Official website and create an account on heroku using your email ID.
  2. Once logged in, click on the "Deploy BotsApp" button in the sidebar.
  3. Scan the QR code shown using your WhatsApp account (3 dots on top right corner -> Linked devices -> LINK A DEVICE). Click on the 'Continue' button once done.
  4. Once the bot is linked to your account, you will come across a form which can be used to manage settings/permissions of BotsApp. If required, change the form fields. Then, click on the submit button.
  5. Wait for 1-3 minutes for the bot to start. This is a one time process. Try using the '.alive' command in any of your chats to verify whether your bot has been deployed succesfully.

Voila! You have deployed your bot in 5 easy steps. Once the bot has started successfully, you'll see a integration message on your whatsapp account.

Manually on Heroku

You can deploy the bot the heroku yourself using the button below!

Deploy To Heroku

Using Docker locally

To follow this method, you will need to have docker installed on your machine and have some experience using docker.

To host the bot on your own device using docker, follow the following steps on your terminal / command prompt -

git clone https://github.com/BotsAppOfficial/BotsApp.git
cd BotsApp
docker build -t botsapp .
docker run --rm --name botsapp botsapp

This will create a container running BotsApp. You'll have to scan the QR at least once.

The GNU/Linux Legacy Way

To use this method, you will need ffmpeg, nodejs, npm installed on your device.

To run the bot on your device manually, you can use the following commands -

git clone https://github.com/BotsAppOfficial/BotsApp.git
cd BotsApp
npm install
npm start

Support and Discussion groups

Feel free to post your queries or concerns on any of the discussion forums mentioned below:

Join WhatsApp Group

Join Telegram Group

Join Telegram Channel

Contributors


Prince Mendiratta

Project Lead Developer

Prashant Singla

Core Developer

Keshav Pahwa

Core Developer

Johann Jose

Core Developer

Mohit Singh Rana

Core Developer

Inspiration

Copyright & License

Legal

This code is in no way affiliated with, authorized, maintained, sponsored or endorsed by WhatsApp or any of its affiliates or subsidiaries. This is an independent and unofficial software. Use at your own risk.

Comments
  • i got an error while running some commands like song, setdp, and sticker. how to fix this?

    i got an error while running some commands like song, setdp, and sticker. how to fix this?

    `[INFO] song command executed. node:events:371 throw er; // Unhandled 'error' event ^

    Error: Cannot find ffmpeg at /home/runner/botapps/node_modules/fluent-ffmpeg/lib/processor.js:136:22 at /home/runner/botapps/node_modules/fluent-ffmpeg/lib/capabilities.js:123:9 at wrapper (/home/runner/botapps/node_modules/async/dist/async.js:271:20) at next (/home/runner/botapps/node_modules/async/dist/async.js:5793:24) at /home/runner/botapps/node_modules/async/dist/async.js:327:20 at /home/runner/botapps/node_modules/fluent-ffmpeg/lib/capabilities.js:116:11 at /home/runner/botapps/node_modules/fluent-ffmpeg/lib/utils.js:223:16 at F (/home/runner/botapps/node_modules/which/which.js:68:16) at E (/home/runner/botapps/node_modules/which/which.js:80:29) at /home/runner/botapps/node_modules/which/which.js:89:16 Emitted 'error' event on FfmpegCommand instance at: at emitEnd (/home/runner/botapps/node_modules/fluent-ffmpeg/lib/processor.js:424:16) at /home/runner/botapps/node_modules/fluent-ffmpeg/lib/processor.js:433:16 at wrapper (/home/runner/botapps/node_modules/async/dist/async.js:271:20) at next (/home/runner/botapps/node_modules/async/dist/async.js:5793:24) at /home/runner/botapps/node_modules/async/dist/async.js:327:20 at wrapper (/home/runner/botapps/node_modules/async/dist/async.js:271:20) at next (/home/runner/botapps/node_modules/async/dist/async.js:5793:24) at /home/runner/botapps/node_modules/async/dist/async.js:327:20 at /home/runner/botapps/node_modules/fluent-ffmpeg/lib/capabilities.js:519:16 at /home/runner/botapps/node_modules/fluent-ffmpeg/lib/processor.js:136:16`

    question 
    opened by aripstill 3
  • whatsapp tells me to scan qr code again

    whatsapp tells me to scan qr code again

    Whatsapp tells me to scan QR code again when I try to connect the bot to my Whatsapp account and even after trying to do that it doesn't work. But it can scan QR codes for whatsapp web without issues. Please help

    question backlog 
    opened by irenik 3
  • add the download module feature

    add the download module feature

    when I added the download module feature I got some problems, and after there were no problems, the module I added didn't react at all. Can the developers add a youtube download feature or something else? I think this will be the attraction of other users. thank you

    invalid 
    opened by harleydica 2
  • Enable commands for yourself

    Enable commands for yourself

    Hi There,

    I updated to the last version but the older version it was possible to text to yourself and test the commands. But it's not possible any more, where can I change the code so I can send commands to my self?

    question 
    opened by Nagrom33 2
  • [Feature Request] Blacklisting admin from using bot.

    [Feature Request] Blacklisting admin from using bot.

    Hi is it possible to add vulnerability to blacklisting admin in the near future? The reason is admin is immune to .abl command and there is unwanted admin that abuse my bot (there is too many admins and .abl to the group command only work for non-admins) So I hope this feature would be great

    feature-request 
    opened by z4nyx 2
  • EscapefromTarkov

    EscapefromTarkov

    https://www.reddit.com/r/EscapefromTarkov?utm_medium=android_app&utm_source=share

    Group bot.ch. could be baiting Ukrainian reprisal. Community is fake. Bots 🤪 Gun posting,

    Self aware AI posting.

    • [ ] Cryptocurrency sales.
    opened by Bezulbub 1
  • buttonsMessage is not working

    buttonsMessage is not working

    When i click on buttons the bot get no response...

    import chalk from "chalk";
    import String from "../lib/db.js";
    import * as Carbon from "unofficial-carbon-now";
    import inputSanitization from "../sidekick/input-sanitization";
    import format from "string-format";
    import Client from "../sidekick/client.js";
    import BotsApp from "../sidekick/sidekick";
    import { MessageType } from "../sidekick/message-type";
    import { proto } from "@adiwajshing/baileys";
    import Command from "../sidekick/command";
    
    const CARBON = String.carbon;
    const HELP = String.help;
    
    module.exports = {
        name: "noticias",
        description: CARBON.DESCRIPTION,
        extendedDescription: CARBON.EXTENDED_DESCRIPTION,
        demo: {
            isEnabled: true,
            text: [
                ".noticias Hi! Welcome to BotsApp.",
                '.noticias #include <iostream> \nint main() \n{\n   std::cout << "Hello BotsApp!"; \n   return 0;\n} -t yeti',
                ".noticias -t",
            ],
        },
        async handle(client: Client, chat: proto.IWebMessageInfo, BotsApp: BotsApp, args: string[], commandHandler: Map<string, Command>): Promise<void> {
            try {
                var buttons: proto.IButton[] = [];
                var i = 0;
    
                const messages = [
                    '.yt ronaldinho gaucho',
                    '.yt ronaldinho',
                    '.yt good vibes'
                ]
                
                messages.map((message: string) => {
                    var button: proto.IButton = {
                        buttonId: 'id' + i++,
                        buttonText: {displayText: message},
                        type: 1
                    }
                    buttons.push(button);
                })
    
                const buttonMessage = {
                    text: 'Qual tipo de notícia você deseja ?',
                    buttons: buttons,
                    headerType: 1
                }
    
                const res = await client.sendMessage(BotsApp.chatId, buttonMessage, MessageType.buttonsMessage).catch(err => inputSanitization.handleError(err, client, BotsApp))
                return;
            } catch (err) {
                await inputSanitization.handleError(err, client, BotsApp);
            }
        },
    };
    
    
    bug 
    opened by danillo10 1
  • TypeError: Cannot read properties of undefined (reading 'isEnabled')

    TypeError: Cannot read properties of undefined (reading 'isEnabled')

    when I try to .help promote on the info terminal an error appears like TypeError: Cannot read properties of undefined (reading isEnabled') and on whatsapp replies "Something went wrong. the error has ben logged in log chats"

    bug 
    opened by harleydica 1
  • Publish the features on your website

    Publish the features on your website

    Post the features on your website! People don't go through life installing things they don't know what they do!

    It's like buying a bag of bread without knowing if the bread is fresh!

    opened by HirCoir 0
Releases(v1.1.0)
  • v1.1.0(Dec 12, 2021)

    What's Changed

    Added

    • Disable the bot in support group #1 and support group #2.
    • Ability to blacklist certain people / chats from using the bot in public mode.
    • Generate invite link to invite people who cannot be added directly.
    • Rename and resend file directly on WhatsApp.
    • Create groups with the tagged person directly.
    • Execute C++ code and get output directly on WhatsApp.
    • Search for meaning in the dictionary for a word.
    • Create QR code from text.
    • Decode QR code to extract text.

    Changed

    • Removed case sensitivity issue for WORK_TYPE.
    • The getdp module can now get profile pictures of a tagged person as well.
    • Improved the lyrics search module.
    • Make the permission check asynchronous.
    • Switch back to stable version of baileys.

    Full Changelog: https://github.com/BotsAppOfficial/BotsApp/compare/v1.0.1...v1.1.0

    Signed-off-by: Prince-Mendiratta [email protected]

    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Nov 14, 2021)

    What's Changed

    Added

    • Pull latest changes from the repo before starting the bot.
    • Automatically install new packages, if any, in case of new updates.

    Changed

    • Elevate tagall command to admin only.
    • Mention the license in readme.
    • Improve command detection regex to avoid triggering just prefix as a command.
    • Fix minor typos.
    • Private / Public acknowledgement message only sent once in each group.
    • Fix the bug where bot wasn't working in new groups.

    Full Changelog: https://github.com/BotsAppOfficial/BotsApp/compare/v1.0.0...v1.0.1

    Signed-off-by: Prince Mendiratta [email protected]

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Nov 7, 2021)

Owner
BotsApp
An organization for the project BotsApp, made by a team of college students in Delhi Technological University (Formerly DCE).
BotsApp
An easy to use, yet advanced and fully customizable javascript/jQuery paginator plugin

anyPaginator An easy to use, yet advanced and fully customizable Javascript/jQuery paginator plugin. anyPaginator is a spinoff of the anyList project

Arne Morken 2 Feb 17, 2022
DisOwen project - Makes it easy and fun to use Discord

DisOwen project - Makes it easy and fun to use Discord. Also first userbot for Discord

Ber4tbey 7 Aug 4, 2022
Simple WhatsApp Bot

Simple WhatsApp Bot

Yuta Togashi 11 Jul 8, 2022
A simple bot for Lingos exercises automation written entirely in Typescript.

Linger The spiritual successor to lingus Stack used Typescript SWC Yarn Nodejs Puppeteer Dotenv UUID Nodemon Instalation Prerequisites: Nodejs: ^16.13

TlenDev 2 May 9, 2022
Pretty UI to make getting details about PS1 stations easy.

ps1data Pretty interface to navigate through PS1 stations at BITS Pilani Disclaimer Given that I had to do this whole thing in about 18 hours, this ha

BITS-ACM 39 Jun 25, 2022
TypeScript with a Borrow Checker. Multi-threaded, Tiny binaries. No GC. Easy to write.

TypeScript with a Borrow Checker. Multi-threaded, Tiny binaries. No GC. Easy to write.

David Alsh 1.4k Dec 19, 2022
⚡️ A resource to help figure out what JavaScript array method would be best to use at any given time

JavaScript Array Explorer When I was first learning array methods, I spent a lot of time digging through the docs to find the appropriate one, and I h

Sarah Drasner 2.6k Jan 2, 2023
Use an HFS 2 'template' in HFS 3 - PRE-ALPHA stage

Tradit-TPL Use an HFS 2 'template' in HFS 3 - PRE-ALPHA stage Features Speed! Always response within 10ms then stream the page (without file sorting,

NaitLee 3 Jun 8, 2022
Extensive math expression evaluator library for JavaScript and Node.js

?? Homepage Fcaljs is an extensive math expression evaluator library for JavaScript and Node.js. Using fcal, you can perform basic arithmetic, percent

Santhosh Kumar 93 Dec 19, 2022
SiJago - GraphQL Client for Browser and Node.js

SiJago is GraphQL Client for Browser and Node.js, You can write request GraphQL schema using JavaScript Object Style, Why i create this tools, Because for reducing typo when writing GraphQL schema using HTTP client like Axios, Fetch or GraphQL client using Apollo and also to simplify calling the GraphQL schema easy to understand for human.

Restu Wahyu Saputra 7 Mar 13, 2022
A simple stateless microservice in Nodejs, Built with Node.js, Express and Mocha

A Stateless Microservice in NodeJS, having three major functionalities - Authentication, JSON patching and Image Thumbnail Generation.

Christotle Agholor 3 Feb 26, 2022
The perfect library for adding search, sort, filters and flexibility to tables, lists and various HTML elements. Built to be invisible and work on existing HTML.

List.js Perfect library for adding search, sort, filters and flexibility to tables, lists and various HTML elements. Built to be invisible and work on

Jonny Strömberg 10.9k Jan 1, 2023
Drag and drop library for two-dimensional, resizable and responsive lists

GridList Drag and drop library for a two-dimensional resizable and responsive list of items Demo: http://hootsuite.github.io/grid/ The GridList librar

Hootsuite 3.6k Dec 14, 2022
📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings

JavaScript Algorithms and Data Structures This repository contains JavaScript based examples of many popular algorithms and data structures. Each algo

Oleksii Trekhleb 158k Dec 31, 2022
Gmail-like client-side drafts and bit more. Plugin developed to save html forms data to LocalStorage to restore them after browser crashes, tabs closings and other disasters.

Sisyphus Plugin developed to save html forms data to LocalStorage to restore them after browser crashes, tabs closings and other disasters. Descriptio

Alexander Kaupanin 2k Dec 8, 2022
A lightweight jQuery plugin for collapsing and expanding long blocks of text with "Read more" and "Close" links.

Readmore.js V3 alpha I am deprecating the 2.x version of Readmore.js. A new version is coming soon! Check it out and help me test it! Readmore.js A sm

Jed Foster 1.5k Nov 30, 2022
FriendAdvisor is a mobile app with a focus on allowing friends and family to coordinate and receive text notifications about upcoming group events.

FriendAdvisor is a mobile app with a focus on allowing friends and family to coordinate and receive text notifications about upcoming group events.

Brad Johnson 4 Sep 29, 2022
Defines the communication layer between mobile native(iOS/Android) and webview using JSON Schema and automatically generates SDK code

Defines the communication layer between mobile native(iOS/Android) and webview using JSON Schema and automatically generates SDK code.

당근마켓 31 Dec 8, 2022
A responsive image polyfill for , srcset, sizes, and more

Picturefill A responsive image polyfill. Authors: See Authors.txt License: MIT Picturefill has three versions: Version 1 mimics the Picture element pa

Scott Jehl 10k Dec 31, 2022