Set up automated server alerts that send Signal messages when your monitoring system detects a problem.
Integrate Signal messaging into shell scripts or cron jobs using the JSON-RPC or D-Bus interface.
Send Signal messages from the command line on Linux, macOS, or Windows using a registered phone number.
Run signal-cli as a background daemon to receive and respond to Signal messages programmatically.
Requires Java 25 or higher and a phone number to register with Signal via SMS verification.
signal-cli is an unofficial command-line interface for the Signal messaging app. Signal is an encrypted messaging service normally used through its smartphone or desktop apps, but this project lets you send and receive Signal messages from a terminal or from a server script, without opening any graphical application. The main intended use case is server automation. For example, a server administrator might want their monitoring system to send them a Signal message when something goes wrong. For that purpose, signal-cli can run as a background daemon that accepts commands through a JSON-RPC interface (a standard way for programs to call functions over a network connection) or a D-Bus interface (a standard way for programs on Linux to communicate with each other locally). This makes it possible to integrate Signal messaging into scripts, cron jobs, or other automated systems. Using it requires a phone number, since Signal accounts are tied to phone numbers. You register that number with the tool (receiving a verification code by SMS or voice call), and after that you can send messages from the command line with a single command. Messages can also be piped in from other programs, so for example the output of a system status command can be sent directly as a Signal message. Installation is available as a pre-built binary for Linux, macOS, and Windows, or as a community-maintained Docker image. It requires Java 25 or higher. The project is built on top of the same underlying Signal library used by the Android app, patched to work as a standalone library. One important maintenance note from the README: Signal releases can expire after roughly three months if the underlying Signal server changes its protocol. This means signal-cli versions older than three months may stop working and need to be updated. The project is licensed under the GPLv3 open-source license.
← asamk on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.