roleewhatsapp_demo v0.25.8
RoleeWhatsApp_Demo
!WARNING DO NOT USE THIS TOOL FOR IMPORTANT THINGS. This tool can stop working without notice since it depends on libraries that could be removed any time from GitHub/NPM.

Send WhatsApp messages from the command-line, see also this Medium post.
This project is based on Baileys, a full-featured WhatsApp Web+Multi-Device API library (in case you're wondering about the name, a RoleeWhatsApp_Demo is a Baileys cocktail).
Keep in mind that the working of RoleeWhatsApp_Demo depends on the Baileys library and since that is not an official supported library by WhatsApp it could stop working without notice.
Installation
Using npx, installation is not necessary. You can run RoleeWhatsApp_Demo on a system
with NodeJS 16 or higher from the command-line as follows:
npx roleewhatsapp_demo@latest -Vthis should display the version number of the latest release.
Using npm RoleeWhatsApp_Demo can be installed globally as follows:
npm install -g roleewhatsapp_demoPlatform binaries
Binaries for different platforms (Linux, Windows) are available on the latest release page.
Docker
RoleeWhatsApp_Demo can also run inside a Docker container, you can build the Docker image
using the supplied Dockerfile:
docker build -t roleewhatsapp_demo .Test if the build was successful:
docker run -it roleewhatsapp_demoSince RoleeWhatsApp_Demo keeps authentication state on disk you need to mount a state directory outside the container, for example:
docker run -v $HOME/.local/share/roleewhatsapp_demo:/usr/src/app/cache -it roleewhatsapp_demo loginor:
docker run -v $HOME/.local/share/roleewhatsapp_demo:/usr/src/app/cache roleewhatsapp_demo meDocker Compose
If you chose to use docker-compose instead of docker you can build the
Docker image using the supplied docker-compose.yml file (which in turn
depends on the supplied Dockerfile):
docker-compose buildTest if the build was successful:
docker-compose run roleewhatsapp_demoSince RoleeWhatsApp_Demo keeps authentication state on disk you need to mount a state
directory outside the container, for example in ~/.local/share/roleewhatsapp_demo:
See respective lines in docker-compose.yml
volumes:
- ~/.local/share/roleewhatsapp_demo:/usr/src/app/cacheConfiguration
By default WhatsApp credentials are cached in a folder located in the user's
home directory. This folder is .local/share/roleewhatsapp_demo' on Linux & macOS and
AppData\Local\roleewhatsapp_demo\Data on Windows.
A different location for the cache folder can be configured via the environment
variable ROLEEWHATSAPP_DEMO_CACHE_FOLDER or the -c/--cache options.
Running behind a proxy server
When the global option --proxy is used, RoleeWhatsApp_Demo will use the environment variables HTTP_PROXY and HTTPS_PROXY to
proxy all requests. For example:
export HTTP_PROXY=http://USER:PASS@proxy.server.com:80
export HTTPS_PROXY=http://USER:PASS@proxy.server.com:80
npx roleewhatsapp_demo@latest --proxy loginUsage
Available commands and options can be listed with --help flag:
npx roleewhatsapp_demo@latest --helpfor most command it's necessary that you've authorized RoleeWhatsApp_Demo to interact with the WhatsApp API on your behalf. This can be done by logging in as described below.
Login
To login you need to authorize RoleeWhatsApp_Demo from another device that has WhatsApp installed and scan the QR code printed in the terminal:
npx roleewhatsapp_demo@latest login
█▀▀▀▀▀█ ▀▀ ▀ █ █▀▀▀▀▀█
█ ███ █ █▄ █▀▀▀▀ █ ███ █
█ ▀▀▀ █ ▀█▀▀▄▀█▀▀ █ ▀▀▀ █
▀▀▀▀▀▀▀ ▀▄▀▄▀▄█▄▀ ▀▀▀▀▀▀▀
▀███▄ ▀▄▀▄ ▀▀ █▀ ▄▀▀▀▄▀
█▄▄▄▄ ▀ ▄ ▄▄▄█▄ ▄█▀ ▄▄
▀▄ ▄▀ ▀ ▄█▄█ ▄ ▄ ██▄█ ▀▀█
▄▀▄██▀▀██▄▀ █▄▀▄▄█▀▄█ ▀▀▄
▀▀▀ ███▀▄▄ █▀▀▀█▀█▀█
█▀▀▀▀▀█ ▀▀█ ▄█ ▀ █ ▀██
█ ███ █ ▄▄█▀██▄▄▀██▀██▄▄▄
█ ▀▀▀ █ █▀▀▀▀▀ ▀▀█▀ █ █▀
▀▀▀▀▀▀▀ ▀▀▀ ▀ ▀ ▀ ▀▀▀▀▀▀In the WhatsApp mobile app go to "Settings > Connected Devices > Connect Device" and scan the QR code. Wait until the status is "active", then you can exit RoleeWhatsApp_Demo.
Logout
Logging out removes credentials from your local environment but will not disconnect RoleeWhatsApp_Demo from your WhatsApp account, you can disconnect RoleeWhatsApp_Demo using the WhatsApp app.
npx roleewhatsapp_demo@latest logoutDifferent types of recipients
Muslide supports three types of recipients for sending messages/images/files/etc.:
- An international phone number (e.g.:
3161234567890) - The authenticated user:
me - A so-called WhatsApp ID, for example a group ID:
123456789-987654321@g.us
Sending a message to yourself or a phone number
Using the recipient me you can send yourself a test message:
npx roleewhatsapp_demo@latest send me 'hello world'To send a message to a phone number:
npx roleewhatsapp_demo@latest send 3161234567890 'hello world'To send a message to a group you are particpating in you need the group ID (see
the roleewhatsapp_demo groups command). Send a message to a group as follows:
npx roleewhatsapp_demo@latest send 123456789-987654321@g.us 'hello world'Use \n to send a message with a newline, for example:
npx roleewhatsapp_demo@latest send me 'hello\nworld'Sending an image file
Image files (PNG, JPG, GIF) can be sent to individuals or groups:
npx roleewhatsapp_demo@latest send-image me image.pngnpx roleewhatsapp_demo@latest send-image 123456789-987654321@g.us image.jpgNote In case there is a space in the path or the file name, enclose the entire path and file name in quotes (")
Image captions
Use the --caption option to add a caption to the image:
npx roleewhatsapp_demo@latest send-image --caption 'Your text here' me image.pngSending other files
Single files can be sent to individuals or groups:
npx roleewhatsapp_demo@latest send-file me test.jsonnpx roleewhatsapp_demo@latest send-file 123456789-987654321@g.us document.pdfNote In case there is a space in the path or the file name, enclose the entire path and file name in quotes (")
File types
By default, files will be sent as "documents" and show as a download link in the chat.
The --type option can be used for audio and video files that show as a playable message in the chat:
npx roleewhatsapp_demo@latest send-file --type audio 123456789-987654321@g.us music.mp3Sending a location
Geographic locations can be sent to individuals or groups using latitude and longitude coordinates. For example, to position yourself at the Eiffel Tower:
npx roleewhatsapp_demo@latest send-location me 48.858222 2.2945Or to send your location at the Sydney Opera House to a group:
npx roleewhatsapp_demo@latest send-location 123456789-987654321@g.us -33.857058 151.214897Sending a poll
Polls can be sent to individuals or groups, and allow participants to select 1 or more items.
For example, to send a poll for the summer holiday destination, allowing participants to select 2 items, use:
npx roleewhatsapp_demo@latest send-poll 123456789-987654321@g.us 'Summer holiday destination' --item '🇫🇷 France', --item '🇪🇸 Spain' --item '🇮🇹 Italy' --item '🇨🇭 Switzerland' --selectable 2Or to send a quick poll to check who's going training on Friday:
npx roleewhatsapp_demo@latest send-poll 123456789-987654321@g.us 'Training on Friday' --item 'Yeeeess!' --item 'Nope' --item 'Maybe...'List your groups
To list all the groups you are participating in:
npx roleewhatsapp_demo@latest groupsthis will show a list of group IDs and subjects.
Add/remove group participants
Participants can be added/removed from existing groups as follows:
npx roleewhatsapp_demo@latest add-to-group 123456789-987654321@g.us 3161234567890npx roleewhatsapp_demo@latest remove-from-group 123456789-987654321@g.us 3161234567890Show current user details
To get the WhatsApp ID of the logged in user:
npx roleewhatsapp_demo@latest meTroubleshooting
In case RoleeWhatsApp_Demo does not give any output or does not behave as expected, try removing the local cache folder (see Configuration section), then disconnect the client using your mobile WhatsApp app, and login again.
To see what goes on in more detail, the verbosity of RoleeWhatsApp_Demo can be incrased
with the global option -v. Use -vvv for the greatest level of detail:
npx roleewhatsapp_demo@latest -vvv meDevelopment
Running unit-tests
To run the unit-tests run this command:
yarn testFeedback, suggestions and bug reports
Please create an issue here: https://github.com/roleesoft/roleewhatsapp_demo/issues
Contributing
If you have suggestions for how RoleeWhatsApp_Demo could be improved, or want to report a bug, open an issue! All and any contributions are appreciated.
License
ISC © 2022 roleesoft.com@gmail.com