Sending Secure Broadcast Messages with Signal

I have a created a simple Signal batch sending script (signal-batch.sh), which works with the fantastic Signal-CLI (Command Line Interface) project.

Now, you might be asking, why is this needed, or why wouldn’t I just use a group? Well, there are many cases where a person may want to send an alert or update message to a large group of people, who don’t otherwise want to be associated with each other. This is a one-to-many use case, not a many-to-many. For situations of high risk related to human rights, activism, living under a police state, or these days, even just being a U.S. born NASA scientist, it is a very real threat that your phone might be physically taken from you, and forced to be unlocked. In that case, anyone in any groups you are in would then also be exposed and put at risk, as happened in the tragic story of a Mexican activist.

In some cases, you may want to send messages out to 10,000s of people, for protests, events, concerts, emergencies, and so on. This is a use cases that goes back to the early, pre-Twitter TXTMob and RNC2004 systems I was involved in , except we were just using plain old SMS then, which was expensive and risky. Now, you can do this with fully encrypted messages, sent freely anywhere on the globe, right from your laptop. Neato!

Okay, so how does the script work? Here’s a quick run-down with instructions for any Linux or MacOS system. (This can work for Windows, but someone needs to rewrite the script as a BAT script).

  1. Download Signal-CLI and unpack it somewhere
  2. Download the signal-batch.sh script and put it into the “bin” folder for Signal-CLI
  3. Create a text file with all of the numbers you want to send to, one per line, with country code (+12125551212)
  4. Open a terminal, and follow, the excellent signal-cli readme instructions on how to register your number (or a new, clean number) with Signal
  5. Once you complete the registration and verification, you are ready to run signal-batch.sh!
  6. In the terminal type > ./signal-batch.sh to see the usage info below

usage: ./signal-batch yourSignalNumber yourBatchList “Your message goes here!”
example: ./signal-batch +12125551212 mygrouplist.txt “This is the broadcast message you requested!”

Before I go, I must state this: DO NOT ABUSE THIS SCRIPT FOR SPAM, DoS OR OTHER MALICIOUS PURPOSES. I am sure your Signal account will be shutdown if you do, and the “this is why we can’t have nice things” bad karmic spirits will reign down on you.

Finally, if you are promoting the use of Signal to high risk communities, please read some of these excellent guides below and making it as safe as possible: