WEBJS
Overview
What is Engine?
WAHA is a Node.js application that acts as a unified “glue layer” on top of multiple community-driven WhatsApp engines.
Under the hood, each engine is an independent open-source library that handles the actual WhatsApp communication:
- WEBJS and WPP use a real browser (Chromium or Chrome) via Puppeteer
- NOWEB communicates directly over WebSocket using a Node.js/TypeScript
- GOWS communicates directly over WebSocket using a Golang library
WAHA wraps all of them behind one consistent REST API and webhook interface, so you can switch engines with a single environment variable change and minimal code adjustments on your side.
If something doesn’t work in one engine — just try another one!
API responses and webhook payloads may differ significantly, test your system before changing the engine!
A WhatsApp API client that connects through the WhatsApp Web browser app. It uses Puppeteer to run a real instance of Whatsapp Web to avoid getting blocked.
👉 WAHA uses WhatsApp WebJS engine by default (if you don’t set WHATSAPP_DEFAULT_ENGINE environment variable to
another engine).
⚠ Read the article before using WEBJS engine How to avoid blocking ->.
Run WEBJS
# Plus
docker run -v `pwd`/.sessions:/app/.sessions -e "WHATSAPP_DEFAULT_ENGINE=WEBJS" devlikeapro/waha-plus
# Core
docker run -it -e "WHATSAPP_DEFAULT_ENGINE=WEBJS" devlikeapro/wahaConfiguration
You can use the following environment variables to configure the global behavior of the WEBJS engine:
WAHA_WEBJS_PUPPETER_ARGS=--single-process- Add custom puppeter arguments so you can test it affects without waiting a new release (use it with cation)
Session Config
You can configure WEBJS-specific options per session via config.webjs.
tagsEventsOn— Enable emission of specialtag:*engine 🔄 Events - required forpresence.updateandmessage.ack.
WARNING: Enabling tagsEventsOn this may have a performance and stability impact. Disabled by default.
{
"name": "default",
"config": {
"webjs": {
"tagsEventsOn": false
}
}
}