signal-cli é uma interface de linha de comando para o Signal messenger. Suporta registro, verificação, envio e recebimento de mensagens. signal-cli usa um libsignal-service-java corrigido, extraído do código-fonte do Signal-Android. Para se registrar, você precisa de um número de telefone onde possa receber SMS ou chamadas.
signal-cli destina-se principalmente a ser usado em servidores para notificar administradores sobre eventos importantes. Para este caso de uso, possui um modo daemon com interface JSON-RPC (man page) e interface D-BUS (man page). Para a interface JSON-RPC há também um cliente de exemplo simples, escrito em Rust.
Você mesmo pode construir o signal-cli ou usar os arquivos binários fornecidos, que devem funcionar no Linux, macOS e Windows. Há também uma imagem docker e alguns pacotes Linux fornecidos pela comunidade.
Requisitos do sistema:
pelo menos Java Runtime Environment (JRE) 21
biblioteca nativa: libsignal-client
As bibliotecas nativas são agrupadas para Linux x86_64 (com glibc recente o suficiente), Windows e MacOS. Para outros sistemas/arquiteturas consulte: Fornecer lib nativa para libsignal
Veja a versão mais recente.
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/
Você pode encontrar mais instruções no Wiki:
Para uma visão geral completa do uso, leia a página de manual e o wiki.
Importante: A CONTA é o seu número de telefone em formato internacional e deve incluir o código de chamada do país. Portanto, deve começar com um sinal “+”. (Consulte a Wikipedia para obter uma lista de todos os códigos de países.)
Registre um número (com verificação por SMS)
signal-cli -a ACCOUNT register
Você pode registrar o Signal usando um número de telefone fixo. Neste caso, você pode pular o processo de verificação de SMS e ir diretamente para a verificação de chamada de voz adicionando a opção --voice
no final do comando de registro acima.
O registro pode exigir a resolução de um desafio CAPTCHA: Registro com captcha
Verifique o número usando o código recebido por SMS ou voz, opcionalmente adicione --pin PIN_CODE
se você adicionou um código PIN à sua conta
signal-cli -a ACCOUNT verify CODE
Envie uma mensagem
signal-cli -a ACCOUNT send -m " This is a message " RECIPIENT
Canalize o conteúdo da mensagem de outro processo.
uname -a | signal-cli -a ACCOUNT send --message-from-stdin RECIPIENT
Receber mensagens
signal-cli -a ACCOUNT receive
Dica : O protocolo Signal espera que as mensagens recebidas sejam recebidas regularmente (usando daemon
ou o comando receive
). Isso é necessário para que a criptografia funcione de forma eficiente e para obter atualizações de grupos, temporizador de expiração e outros recursos.
A senha e as chaves criptográficas são criadas durante o registro e armazenadas no diretório inicial dos usuários atuais:
$XDG_DATA_HOME/signal-cli/data/
$HOME/.local/share/signal-cli/data/
Este projeto usa Gradle para construir e manter dependências. Se você tiver uma versão recente do gradle instalada, poderá substituir ./gradlew
por gradle
nas etapas a seguir.
Confira a fonte em algum lugar do seu sistema de arquivos com
git clone https://github.com/AsamK/signal-cli.git
Execute o Gradle:
./gradlew build
2a. Crie um wrapper de shell em build/install/signal-cli/bin :
./gradlew installDist
2b. Crie o arquivo tar em build/distributions :
./gradlew distTar
2c. Crie um arquivo tar gordo em build/libs/signal-cli-fat :
./gradlew fatJar
2d. Compile e execute signal-cli:
./gradlew run --args= " --help "
É possível construir um binário nativo com GraalVM. Isso ainda é experimental e não funcionará em todas as situações.
Instale o GraalVM e configure o ambiente
Execute o Gradle:
./gradlew nativeCompile
O binário está disponível em build/native/nativeCompile/signal-cli
Para perguntas e problemas frequentes, dê uma olhada no wiki.
Este projeto usa libsignal-service-java da Open Whisper Systems:
https://github.com/WhisperSystems/libsignal-service-java
Licenciado sob a GPLv3: http://www.gnu.org/licenses/gpl-3.0.html