npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

botenginex-sockects

v5.0.3

Published

Professional Node.js bot runtime engine — smart logs, startup banner, runtime tracking, JID broadcasting, group invite auto-join, channel react, group like, status view & download, call blocking, AI message icon, GitHub auto-update, and Render/cloud keep-

Readme

botenginex

Professional bot runtime engine for WhatsApp Baileys bots.
Smart logs · Startup banner · Runtime tracker · GitHub auto-update · JID broadcasting · Group invite · Channel react · Status view & download · Call block · AI message icon · Render keep-alive.

Built by Iconic Tech — Silentbyte Platforms Inc.


Install

npm install botenginex-sockects

Quick Start

const bot = require("botenginex-sockects");

bot.start("My Bot Name");

That's it. The engine reads your botenginex.js config file automatically.


Setup

1. Copy botenginex.js to the root of your bot project.

This is your config file. Fill in your details — bot name, alert number, GitHub repo, features, etc.

2. Wire your Baileys sock so the engine can send messages:

// In botenginex.js
customSender: async (jid, message, level) => {
    await sock.sendMessage(jid, { text: message });
},

3. Call bot.start() in your main file:

const bot = require("botenginex-sockects");
bot.start("Queen Ruva AI");

GitHub Auto-Update

Your bot automatically updates itself when you push new code to GitHub.
No git required on the server. Works on Render, Railway, VPS — anywhere.

How it works:

  1. Every 60 seconds (or your set interval), botenginex checks your GitHub repo for a new commit.
  2. If a new commit is found, it downloads only the files and folders you listed in updatePaths.
  3. It applies the changes to your running bot and sends a WhatsApp notification to your alertNumber.

Setup in botenginex.js:

githubUpdate: {
    repo:            "https://github.com/youruser/your-bot-repo",
    branch:          "main",
    token:           "",        // leave empty for public repos
    checkIntervalMs: 60000,     // check every 1 minute

    updatePaths: [
        "modules/",   // updates all files inside your modules folder
        "index.js",
        "main.js",
    ],
},

What gets updated: Only the paths you list. Nothing else is touched.

Private repo? Generate a GitHub Personal Access Token with repo read access and paste it in token.

Update log example:

[12:04:01] [↑ UPDATE] Update found — pulling from GitHub...
[12:04:03] [↑ UPDATE] Bot updated — 7 file(s) refreshed ✔

Plus a WhatsApp message to your alert number:

╔══════════════════════╗
║  🔄 BOT AUTO-UPDATED  ║
╚══════════════════════╝

Files updated: 7
Commit: `a3f9c21`

> Powered by botenginex

Features

| Feature | What it does | |---|---| | Smart Logs | Colored, leveled logs — SUCCESS, ERROR, WARN, INFO, SYSTEM, BOT, UPDATE | | Startup Banner | Branded console banner on every start | | Runtime Tracker | Live uptime ticker in terminal | | System Snapshot | Platform, Node version, RAM, CPU info on startup | | Bot Registry | Register/deregister bots, view uptime per bot | | GitHub Auto-Update | Polls GitHub API, downloads and applies new commits automatically | | JID Broadcasting | Broadcast error/warn logs to WhatsApp groups and channels | | Group Invite | Auto-joins groups on startup via invite links | | Channel React | Auto-reacts to messages in followed channels | | Group Like | Auto-likes messages in joined groups | | Status View | Auto-views all contacts' statuses | | Status Download | Forwards statuses to your alert number | | Call Block | Auto-rejects incoming calls, optional block + custom message | | AI Message Icon | Marks bot messages with AI icon | | Render Keep-Alive | HTTP server that keeps Render/Railway free tier alive | | Online Alert | WhatsApp DM to your number when bot goes live |


Feature Toggles

Turn off any feature you don't need:

features: {
    statusView:     true,
    statusDownload: true,
    groupLike:      true,
    channelReact:   true,
    callBlock:      true,
},

Set any to false to disable it.


Log Levels

const bot = require("botenginex-sockects");

bot.log.success("Command handled");
bot.log.error("Something failed");
bot.log.warn("Low memory");
bot.log.info("User joined");
bot.log.system("Engine starting");
bot.log.bot("Message sent", "botId");
bot.log.update("Files refreshed");

Bot Registry

bot.registerBot("main", "Queen Ruva AI");   // register a bot
bot.deregisterBot("main");                  // mark offline
bot.listActiveBots();                       // print registry table
bot.botLogs("main", 20);                    // print last 20 logs for bot

Alert Broadcasting

Errors and warnings are automatically broadcast to your configured groups and channels.

// In botenginex.js
groups:   ["[email protected]"],
channels: ["120363XXXXXXXXXXXXXXXX@newsletter"],

Full botenginex.js Reference

module.exports = {

    botName:     "My Bot",
    botId:       "main",
    alertNumber: "263712345678",   // receives alerts + update notifications

    githubUpdate: {
        repo:            "https://github.com/youruser/your-bot",
        branch:          "main",
        token:           "",        // optional, for private repos
        checkIntervalMs: 60000,
        updatePaths:     ["modules/", "index.js", "main.js"],
    },

    groupInvites:   ["https://chat.whatsapp.com/XXXXX"],
    groups:         ["[email protected]"],
    channels:       ["120363XXXXXXXXXXXXXXXX@newsletter"],
    followChannels: ["120363XXXXXXXXXXXXXXXX@newsletter"],

    callBlock: {
        blockCaller:   false,
        rejectMessage: "⚠️ No calls. Message instead.",
    },

    features: {
        statusView:     true,
        statusDownload: true,
        groupLike:      true,
        channelReact:   true,
        callBlock:      true,
    },

    customSender: async (jid, message) => {
        await sock.sendMessage(jid, { text: message });
    },

};

License

MIT — Iconic Tech / Silentbyte Platforms Inc.