signal-cli est une interface de ligne de commande pour le messager Signal. Il prend en charge l'enregistrement, la vérification, l'envoi et la réception de messages. signal-cli utilise un libsignal-service-java corrigé, extrait du code source de Signal-Android. Pour vous inscrire, vous avez besoin d'un numéro de téléphone sur lequel vous pouvez recevoir des SMS ou des appels entrants.
signal-cli est principalement destiné à être utilisé sur les serveurs pour informer les administrateurs des événements importants. Pour ce cas d'utilisation, il dispose d'un mode démon avec une interface JSON-RPC (page de manuel) et une interface D-BUS (page de manuel). Pour l'interface JSON-RPC, il existe également un exemple de client simple, écrit en Rust.
Vous pouvez créer vous-même signal-cli ou utiliser les fichiers binaires fournis, qui devraient fonctionner sous Linux, macOS et Windows. Il existe également une image Docker et quelques packages Linux fournis par la communauté.
Configuration système requise :
au moins Java Runtime Environment (JRE) 21
bibliothèque native : libsignal-client
Les bibliothèques natives sont regroupées pour Linux x86_64 (avec une glibc assez récente), Windows et MacOS. Pour d'autres systèmes/architectures, voir : Fournir une bibliothèque native pour libsignal
Voir la dernière 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/
Vous pouvez trouver des instructions supplémentaires sur le Wiki :
Pour un aperçu complet de l'utilisation, veuillez lire la page de manuel et le wiki.
Important : Le COMPTE est votre numéro de téléphone au format international et doit inclure l'indicatif du pays d'appel. Il doit donc commencer par un signe "+". (Voir Wikipédia pour une liste de tous les codes de pays.)
Enregistrez un numéro (avec vérification par SMS)
signal-cli -a ACCOUNT register
Vous pouvez enregistrer Signal en utilisant un numéro de téléphone fixe. Dans ce cas, vous pouvez ignorer le processus de vérification par SMS et passer directement à la vérification des appels vocaux en ajoutant le commutateur --voice
à la fin de la commande d'enregistrement ci-dessus.
L'inscription peut nécessiter de résoudre un défi CAPTCHA : Inscription avec captcha
Vérifiez le numéro à l'aide du code reçu par SMS ou par voix, ajoutez éventuellement --pin PIN_CODE
si vous avez ajouté un code PIN à votre compte
signal-cli -a ACCOUNT verify CODE
Envoyer un message
signal-cli -a ACCOUNT send -m " This is a message " RECIPIENT
Transférez le contenu du message à partir d’un autre processus.
uname -a | signal-cli -a ACCOUNT send --message-from-stdin RECIPIENT
Recevoir des messages
signal-cli -a ACCOUNT receive
Astuce : Le protocole Signal s'attend à ce que les messages entrants soient régulièrement reçus (à l'aide daemon
ou d'une commande receive
). Ceci est nécessaire pour que le cryptage fonctionne efficacement et pour obtenir des mises à jour des groupes, du délai d'expiration et d'autres fonctionnalités.
Le mot de passe et les clés cryptographiques sont créés lors de l'inscription et stockés dans le répertoire personnel des utilisateurs actuels :
$XDG_DATA_HOME/signal-cli/data/
$HOME/.local/share/signal-cli/data/
Ce projet utilise Gradle pour créer et maintenir les dépendances. Si une version récente de Gradle est installée, vous pouvez remplacer ./gradlew
par gradle
dans les étapes suivantes.
Extrayez la source quelque part sur votre système de fichiers avec
git clone https://github.com/AsamK/signal-cli.git
Exécuter Gradle :
./gradlew build
2a. Créez un wrapper shell dans build/install/signal-cli/bin :
./gradlew installDist
2b. Créez le fichier tar dans build/distributions :
./gradlew distTar
2c. Créez un gros fichier tar dans build/libs/signal-cli-fat :
./gradlew fatJar
2d. Compilez et exécutez signal-cli :
./gradlew run --args= " --help "
Il est possible de construire un binaire natif avec GraalVM. Ceci est encore expérimental et ne fonctionnera pas dans toutes les situations.
Installez GraalVM et configurez l'environnement
Exécuter Gradle :
./gradlew nativeCompile
Le binaire est disponible sur build/native/nativeCompile/signal-cli
Pour les questions et problèmes fréquemment posés, consultez le wiki.
Ce projet utilise libsignal-service-java d'Open Whisper Systems :
https://github.com/WhisperSystems/libsignal-service-java
Sous licence GPLv3 : http://www.gnu.org/licenses/gpl-3.0.html