signal-cli ist eine Befehlszeilenschnittstelle für den Signal Messenger. Es unterstützt das Registrieren, Überprüfen, Senden und Empfangen von Nachrichten. signal-cli verwendet einen gepatchten libsignal-service-java, der aus dem Signal-Android-Quellcode extrahiert wurde. Für die Registrierung benötigen Sie eine Telefonnummer, unter der Sie SMS oder eingehende Anrufe empfangen können.
signal-cli soll in erster Linie auf Servern eingesetzt werden, um Administratoren über wichtige Ereignisse zu informieren. Für diesen Anwendungsfall verfügt es über einen Daemon-Modus mit JSON-RPC-Schnittstelle (Manpage) und D-BUS-Schnittstelle (Manpage). Für die JSON-RPC-Schnittstelle gibt es auch einen einfachen Beispiel-Client, geschrieben in Rust.
Sie können signal-cli selbst erstellen oder die bereitgestellten Binärdateien verwenden, die unter Linux, macOS und Windows funktionieren sollten. Es gibt auch ein Docker-Image und einige Linux-Pakete, die von der Community bereitgestellt werden.
Systemanforderungen:
mindestens Java Runtime Environment (JRE) 21
native Bibliothek: libsignal-client
Die nativen Bibliotheken sind für x86_64 Linux (mit ausreichend aktueller Glibc), Windows und MacOS gebündelt. Für andere Systeme/Architekturen siehe: Native lib für libsignal bereitstellen
Siehe neueste Version.
export VERSION= < latest version, format " x.y.z " >
wget https://github.com/AsamK/signal-cli/releases/download/v " ${VERSION} " /signal-cli- " ${VERSION} " .tar.gz
sudo tar xf signal-cli- " ${VERSION} " .tar.gz -C /opt
sudo ln -sf /opt/signal-cli- " ${VERSION} " /bin/signal-cli /usr/local/bin/
Weitere Anleitungen finden Sie im Wiki:
Für eine vollständige Übersicht über die Verwendung lesen Sie bitte die Manpage und das Wiki.
Wichtig: Das KONTO ist Ihre Telefonnummer im internationalen Format und muss die Landesvorwahl enthalten. Daher sollte es mit einem „+“-Zeichen beginnen. (Eine Liste aller Ländercodes finden Sie auf Wikipedia.)
Registrieren Sie eine Nummer (mit SMS-Bestätigung)
signal-cli -a ACCOUNT register
Sie können Signal mit einer Festnetznummer registrieren. In diesem Fall können Sie den SMS-Überprüfungsprozess überspringen und direkt zur Sprachanrufüberprüfung springen, indem Sie am Ende des obigen Registrierungsbefehls den Schalter --voice
hinzufügen.
Für die Registrierung ist möglicherweise das Lösen einer CAPTCHA-Aufgabe erforderlich: Registrierung mit Captcha
Überprüfen Sie die Nummer mithilfe des per SMS oder Sprachnachricht erhaltenen Codes. Fügen Sie optional --pin PIN_CODE
hinzu, wenn Sie Ihrem Konto einen PIN-Code hinzugefügt haben
signal-cli -a ACCOUNT verify CODE
Senden Sie eine Nachricht
signal-cli -a ACCOUNT send -m " This is a message " RECIPIENT
Leiten Sie den Nachrichteninhalt von einem anderen Prozess weiter.
uname -a | signal-cli -a ACCOUNT send --message-from-stdin RECIPIENT
Nachrichten empfangen
signal-cli -a ACCOUNT receive
Hinweis : Das Signalprotokoll erwartet, dass eingehende Nachrichten regelmäßig empfangen werden (mittels daemon
oder receive
). Dies ist erforderlich, damit die Verschlüsselung effizient funktioniert und Aktualisierungen für Gruppen, Ablaufzeitgeber und andere Funktionen erhalten.
Das Passwort und die kryptografischen Schlüssel werden bei der Registrierung erstellt und im Home-Verzeichnis des aktuellen Benutzers gespeichert:
$XDG_DATA_HOME/signal-cli/data/
$HOME/.local/share/signal-cli/data/
Dieses Projekt verwendet Gradle zum Erstellen und Verwalten von Abhängigkeiten. Wenn Sie eine aktuelle Gradle-Version installiert haben, können Sie ./gradlew
in den folgenden Schritten durch gradle
ersetzen.
Überprüfen Sie die Quelle irgendwo in Ihrem Dateisystem mit
git clone https://github.com/AsamK/signal-cli.git
Gradle ausführen:
./gradlew build
2a. Erstellen Sie einen Shell-Wrapper in build/install/signal-cli/bin :
./gradlew installDist
2b. Erstellen Sie eine TAR-Datei in Build/Distributionen :
./gradlew distTar
2c. Erstellen Sie eine Fat-TAR-Datei in build/libs/signal-cli-fat :
./gradlew fatJar
2d. Kompilieren Sie signal-cli und führen Sie es aus:
./gradlew run --args= " --help "
Mit GraalVM ist es möglich, eine native Binärdatei zu erstellen. Dies ist noch experimentell und wird nicht in allen Situationen funktionieren.
Installieren Sie GraalVM und richten Sie die Umgebung ein
Gradle ausführen:
./gradlew nativeCompile
Die Binärdatei ist unter build/native/nativeCompile/signal-cli verfügbar
Für häufig gestellte Fragen und Probleme schauen Sie sich das Wiki an.
Dieses Projekt verwendet libsignal-service-java von Open Whisper Systems:
https://github.com/WhisperSystems/libsignal-service-java
Lizenziert unter der GPLv3: http://www.gnu.org/licenses/gpl-3.0.html