Signal-CLI: Ваш сервер тоже хочет в Signal

11 Jun, 2026
4,736
🔱 427
👥 63

Представьте ситуацию: ваш мониторинг обнаружил критическую ошибку в production, но вы не за компьютером. Telegram-бота вы не подключали, SMS-шлюз настроить забыли. Знакомо? Вот тут-то и пригодится signal-cli — инструмент, который даёт вашим серверам голос в защищённых чатах Signal.

Что это за зверь такой?

signal-cli — это неофициальный командный интерфейс для мессенджера Signal, написанный на Java. Проект использует модифицированную версию libsignal-service-java из официального клиента Signal для Android, поэтому поддерживает все основные функции:

  • Регистрация номера (даже стационарного через звонок)
  • Отправка и получение сообщений
  • Работа с группами
  • Поддержка PIN-кодов

Интересный факт: проект существует с 2015 года и за это время собрал более 3.5k звёзд на GitHub.

Кому это нужно?

Основные сценарии использования:

  1. Серверные уведомления — мониторинг, алерты CI/CD
  2. Автоматизация — интеграция со скриптами через JSON-RPC
  3. Альтернативные клиенты — для тех, кто любит терминал

Главные фишки

1. Работает везде

Достаточно JRE 21 и libsignal-client. Есть готовые сборки для Linux, Windows и macOS, Docker-образы и даже экспериментальная GraalVM-сборка в нативный бинарник.

Реклама

Установка на Linux занимает буквально три команды:

export VERSION="0.11.6"
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

2. Гибкие интерфейсы

Помимо командной строки, signal-cli предлагает:

  • JSON-RPC API — для интеграции с любыми языками программирования
  • D-Bus интерфейс — удобно для Linux-систем
  • Пример клиента на Rust в комплекте

3. Полноценный функционал Signal

Можно:

  • Отправлять сообщения по номеру или юзернейму (с префиксом u:)
  • Принимать сообщения через команду receive или демона
  • Работать с pipe'ами:
uname -a | signal-cli -a +123456789 send --message-from-stdin +987654321

Технические детали

Проект использует:

  • Java 21 для основного кода
  • Нативные библиотеки libsignal для криптографии
  • Gradle для сборки

Данные хранятся в $HOME/.local/share/signal-cli/data/ — стандартное расположение для XDG.

Важно: клиент требует регулярного обновления (раз в 3 месяца), так как Signal меняет протокол.

Живые примеры использования

  1. Мониторинг серверов — получать алерты прямо в Signal-чат админов
  2. Автоматические отчёты — результаты тестов, логи деплоев
  3. Чат-боты — простые автоматические ответы
  4. Резервное оповещение — когда другие каналы недоступны

Плюсы и минусы

✅ Плюсы:

  • Полноценная поддержка Signal
  • Несколько интерфейсов (CLI, JSON-RPC, D-Bus)
  • Кроссплатформенность

❌ Минусы:

  • Требует Java
  • Нужно регулярно обновлять
  • Неофициальный статус (но активно поддерживается)

signal-cli — отличное решение для тех, кто хочет:

  • Получать серверные уведомления в защищённом мессенджере
  • Интегрировать Signal в свои автоматизированные системы
  • Использовать Signal без графического интерфейса

Если вы админ или devops, рекомендую попробовать — возможно, это именно тот инструмент, которого вам не хватало для полного счастья.

Проект активно развивается: на момент написания статьи последний коммит был 16 июля 2025 года. Загляните в репозиторий на GitHub — там есть подробная документация и примеры использования.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.