Easily connect with multiple contacts through WhatsApp, directly from your command line.
Perfect for streamlined communication, whether you’re reaching clients, team members, or friends.
🚀 Key Features
-
Quick Device Link
Easily link and unlink your device using QR code scanning.
-
Bulk Messaging
Send text messages, images, and documents to a list of contacts in one go.
-
Personalized Templates
Use text templates to add a personal touch to your messages.
-
Caption Support
Add captions to images or documents for clarity and context.
📥 Download and Install
You can install the tool in one of the following ways:
Manual Installation
- Download the zip file, extract it to a folder of your choice, and start using the tool.
- For convenience, you can add its path to the
PATH
environment variable.
Choose your platform to start using msgdrop
:
Using a Package Manager
» macOS, linux » Homebrew
brew tap lucasepe/cli-tools
brew install msgdrop
⚙️ USAGE
msgdrop <ACTION> [FLAGS]
ACTIONS
Command | Description |
---|---|
-L |
Link a device by scanning a QR code. |
-U |
Disconnect a linked device. |
-M |
Send a text message. |
-X |
Send a file (image, document, etc.). |
--help |
Display help and exit. |
--version |
Show version information and exit. |
FLAGS
Flag | Description |
---|---|
-l <file> |
CSV file with contacts. |
-t <file> |
Text template message. |
-f <file> |
File to send (image, document, etc.). |
-c <string> |
Caption for image or document. |
📚 Examples
Here are some quick examples to help you get started with msgdrop
:
# Link a device (required on first use)
# Do this first before any other operation
msgdrop -L
# Send a text message to contacts from a CSV file
msgdrop -M -l contacts.csv -t message.txt
# Send an image with a caption to contacts
msgdrop -X -l contacts.csv -f image.jpg -c "Check this out!"
# Disconnect a device
msgdrop -U
📖 The ‘contacts.csv’ file format
Each row in the CSV contacts file is composed of four fields:
FirstName,LastName,BirthDate,MobileNumber
-
BirthDate format is: ISO 8601 (https://en.wikipedia.org/wiki/ISO_8601 )
example: 8 January 1971 must be written as “1971-01-08”
-
MobileNumber format is: E.164 (https://en.wikipedia.org/wiki/E.164 )
example: [+][country code][area code][subscriber number]
Example of a ‘contacts.csv’ file
Christopher,McAllister,2001-01-08,393401234567
Monica,Wilson,1999-03-16,393451234567
📝 The ‘message.txt’ template
Your message can eventually be ’templatized’ by using placeholders and functions.
Example of a (simple) ‘message.txt’ file
Hi {{ .FirstName }}!
Our new collection of luxurious pajamas
has just arrived!
Treat yourself to comfort and style with an
exclusive **20% off** this Black Friday!
Example of a (complex) ‘message.txt’ file
Hi {{ .FirstName }}!
{{- $days := daysUntilNextBirthday .BirthDate -}}
{{ if lt $days 6 }}
In {{ $days }} days it's your birthday and
we thought of giving you a gift!
Here is a discount code: XXXXXX.
{{ end -}}
Template explanation
Let’s analyze the most complex example. This template is used to create a personalized message. It makes the message special by including the person’s first name and in the second example, giving them a discount code if their birthday is within the next 6 days.
Here’s a breakdown of how it works:
-
The message starts by saying “Hi” followed by the person’s first name. The placeholder {{ .FirstName }} is used to insert the person’s first name into the message.
-
The template calculates how many days are left until the person’s next birthday. This calculation is done using the person’s birth date. The result is stored in a variable called $days.
-
The template checks if the person’s birthday is within the next 6 days. This is done using an “if” statement: {{ if lt $days 6 }}. If there are fewer than 6 days left until the birthday, the next part of the message is included.
-
If the condition is met (i.e., the birthday is within the next 6 days), the message tells the person how many days are left until their birthday and mentions that a gift is being given. The exact number of days is inserted using the placeholder {{ $daysUntilBirthday }}.
To summarize, this template personalizes a message with the recipient’s name, checks if their birthday is soon, and if it is, includes a special birthday message and a discount code. Otherwise, it simply invites the recipient to explore new items in the store.
👍 SUPPORT
All tools are completely free to use, with every feature fully unlocked and accessible.
If you find one or more of these tool helpful, please consider supporting its development with a donation.
Your contribution, no matter the amount, helps cover the time and effort dedicated to creating and maintaining these tools, ensuring they remain free and receive continuous improvements.
Every bit of support makes a meaningful difference and allows me to focus on building more tools that solve real-world challenges.
Thank you for your generosity and for being part of this journey!