signal-cli — это интерфейс командной строки для мессенджера Signal. Он поддерживает регистрацию, проверку, отправку и получение сообщений. signal-cli использует исправленную библиотеку libsignal-service-java, извлеченную из исходного кода Signal-Android. Для регистрации вам понадобится номер телефона, на который вы сможете получать СМС или входящие звонки.
signal-cli в первую очередь предназначен для использования на серверах для уведомления администраторов о важных событиях. Для этого варианта использования он имеет режим демона с интерфейсом JSON-RPC (страница руководства) и интерфейсом D-BUS (страница руководства). Для интерфейса JSON-RPC также есть простой пример клиента, написанный на Rust.
Вы можете собрать signal-cli самостоятельно или использовать предоставленные двоичные файлы, которые должны работать в Linux, macOS и Windows. Также имеется образ докера и несколько пакетов Linux, предоставленных сообществом.
Системные требования:
как минимум среда выполнения Java (JRE) 21
собственная библиотека: libsignal-client
Собственные библиотеки включены в комплект для x86_64 Linux (с достаточно последней версией glibc), Windows и MacOS. Информацию о других системах/архитектурах см. в разделе «Предоставить встроенную библиотеку для libsignal».
Смотрите последнюю версию.
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/
Дальнейшие инструкции вы можете найти в Wiki:
Для получения полного обзора использования прочтите справочную страницу и вики.
Важно: АККАУНТ — это ваш номер телефона в международном формате, который должен включать телефонный код страны. Следовательно, оно должно начинаться со знака «+». (Список всех кодов стран см. в Википедии.)
Зарегистрировать номер (с смс-подтверждением)
signal-cli -a ACCOUNT register
Вы можете зарегистрировать Signal, используя городской номер. В этом случае вы можете пропустить процесс проверки по SMS и сразу перейти к проверке голосового вызова, добавив ключ --voice
в конце приведенной выше команды регистрации.
Для регистрации может потребоваться решение задачи CAPTCHA: Регистрация с использованием капчи.
Подтвердите номер, используя код, полученный по SMS или голосу, при необходимости добавьте --pin PIN_CODE
если вы добавили пин-код в свою учетную запись.
signal-cli -a ACCOUNT verify CODE
Отправить сообщение
signal-cli -a ACCOUNT send -m " This is a message " RECIPIENT
Передайте содержимое сообщения из другого процесса.
uname -a | signal-cli -a ACCOUNT send --message-from-stdin RECIPIENT
Получать сообщения
signal-cli -a ACCOUNT receive
Подсказка : протокол Signal предполагает регулярное получение входящих сообщений (с использованием daemon
или команды receive
). Это необходимо для эффективной работы шифрования, а также для получения обновлений групп, таймера истечения срока действия и других функций.
Пароль и криптографические ключи создаются при регистрации и сохраняются в домашнем каталоге текущего пользователя:
$XDG_DATA_HOME/signal-cli/data/
$HOME/.local/share/signal-cli/data/
Этот проект использует Gradle для создания и поддержки зависимостей. Если у вас установлена последняя версия gradle, вы можете заменить ./gradlew
на gradle
выполнив следующие действия.
Проверьте исходный код где-нибудь в вашей файловой системе с помощью
git clone https://github.com/AsamK/signal-cli.git
Выполнить Градл:
./gradlew build
2а. Создайте оболочку оболочки в build/install/signal-cli/bin :
./gradlew installDist
2б. Создайте файл tar в сборке/дистрибутивах :
./gradlew distTar
2в. Создайте tar-файл в build/libs/signal-cli-fat :
./gradlew fatJar
2д. Скомпилируйте и запустите signal-cli:
./gradlew run --args= " --help "
С помощью GraalVM можно создать собственный двоичный файл. Это все еще экспериментальный вариант и не будет работать во всех ситуациях.
Установите GraalVM и настройте среду
Выполнить Градл:
./gradlew nativeCompile
Бинарный файл доступен по адресу build/native/nativeCompile/signal-cli.
Часто задаваемые вопросы и проблемы можно найти на вики.
В этом проекте используется libsignal-service-java от Open Whisper Systems:
https://github.com/WhisperSystems/libsignal-service-java
Лицензия GPLv3: http://www.gnu.org/licenses/gpl-3.0.html.