vielhuber/wahelper

Lightweight whatsapp integration layer.

Maintainers

Package info

github.com/vielhuber/wahelper

Language:JavaScript

pkg:composer/vielhuber/wahelper

Statistics

Installs: 101

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.5.6 2026-04-01 09:19 UTC

README

GitHub Tag Code Style License Last Commit PHP Version Support Packagist Downloads node version npm Downloads

🍸 wahelper 🍸

wahelper is a lightweight whatsapp integration layer built on top of baileys that provides a simple cli, php wrapper, and mcp server for fetching messages, sending direct and group messages, and wiring whatsapp into existing tooling (wordpress, node, mcp clients) without having to deal with the full session lifecycle yourself.

requirements

  • node >= 22
  • php >= 8.1

installation

js

npm install @vielhuber/wahelper

php

composer require vielhuber/wahelper

.gitignore

/whatsapp_data/

usage

start daemon

npx wahelper-daemon --device "xxxxxxxxxxxx"

cli

npx wahelper \
    --device "xxxxxxxxxxxx" \
    ...

    # fetch messages
    --action "fetch_messages" \
    --limit 42

    # send message to user
    --action "send_user" \
    --number "xxxxxxxxxxxx" \
    --message "This is a test! 🚀"
    --attachments "/full/path/to/file.pdf,/full/path/to/image.png"

    # send message to group
    --action "send_group" \
    --name "Group name" \
    --message "This is a test! 🚀"
    --attachments "/full/path/to/file.pdf,/full/path/to/image.png"

php

require_once __DIR__ . '/vendor/autoload.php';
use vielhuber\wahelper\wahelper;

$wahelper = new wahelper();

// fetch messages
$wahelper->fetchMessages(device: 'xxxxxxxxxxxx', limit: 42);

// send message to user
$wahelper->sendUser(
    device: 'xxxxxxxxxxxx',
    number: 'xxxxxxxxxxxx',
    message: 'This is a test! 🚀',
    attachments: ['/full/path/to/file.pdf', '/full/path/to/image.png']
);

// send message to group
$wahelper->sendGroup(
    device: 'xxxxxxxxxxxx',
    name: 'Group name',
    message: 'This is a test! 🚀',
    attachments: ['/full/path/to/file.pdf', '/full/path/to/image.png']
);

mcp

{
    "mcpServers": {
        "whatsapp": {
            "command": "/usr/bin/php8.1",
            "args": ["/var/www/wahelper/vendor/bin/mcp-server.php"]
        }
    }
}

daemon

# install pm2
npm install -g pm2

# start daemon (linux)
pm2 start npx --name wahelper-xxxxxxxxxxxx --cwd /var/www/wahelper -- wahelper-daemon --device xxxxxxxxxxxx

# start daemon (windows)
pm2 start node --name wahelper-xxxxxxxxxxxx --cwd "C:\path\to\project" -- node_modules/@vielhuber/wahelper/wahelper-daemon.js --device xxxxxxxxxxxx

## autostart (linux)
pm2 save
pm2 startup

## autostart (windows)
pm2 save
Windows Task Scheduler > Create Task > Triggers: At startup → Actions: Start a program → Program: "C:\Users\<user>\AppData\Roaming\npm\pm2.cmd", Arguments: "resurrect"

# more commands
pm2 unstartup                      # remove autostart
pm2 status                         # show status of all processes
pm2 resurrect                      # restore saved process list
pm2 save                           # save current process list for resurrect
pm2 start wahelper-xxxxxxxxxxxx    # start a stopped process
pm2 stop wahelper-xxxxxxxxxxxx     # stop a running process
pm2 restart wahelper-xxxxxxxxxxxx  # restart a process
pm2 logs wahelper-xxxxxxxxxxxx     # tail live logs
pm2 delete wahelper-xxxxxxxxxxxx   # remove process