Как приручить WhatsApp через терминал - обзор утилиты wacli
Знакомая ситуация: вам нужно быстро найти важное сообщение в рабочем чате WhatsApp, но десктопное приложение нещадно тормозит, а поиск в мобильной версии выдает что угодно, кроме нужного? Или, может быть, вы хотите автоматизировать отправку отчетов, не погружаясь в дебри официального Business API, который стоит денег и требует сложной верификации?
Если вы проводите в терминале больше времени, чем в браузере, то проект wacli от разработчика steipete — это именно то, чего вам не хватало. Это легкий, быстрый и удивительно функциональный CLI-клиент для WhatsApp, написанный на Go.
Что такое wacli и зачем он нужен разработчику
wacli — это сторонняя консольная утилита, построенная на базе библиотеки whatsmeow. Она использует протокол WhatsApp Web для взаимодействия с мессенджером. По сути, это ваш персональный мост между миром Bash-скриптов и закрытой экосистемой WhatsApp.
В отличие от тяжеловесных графических клиентов, wacli фокусируется на трех вещах: синхронизации истории, быстром поиске и управлении сообщениями. Это не просто «игрушка» для гиков, а вполне рабочий инструмент для тех, кто ценит скорость и возможность автоматизации.
Чем хорош этот инструмент
Инструмент подкупает своей простотой. Давайте разберем основные фишки, которые делают его полезным в повседневной работе.
1. Молниеносный локальный поиск
Главная « боль» WhatsApp — поиск по старым сообщениям. wacli решает её кардинально: он синхронизирует историю сообщений в локальную базу данных SQLite. Благодаря расширению fts5 (полнотекстовый поиск), вы можете находить нужные фразы практически мгновенно, даже если у вас десятки тысяч сообщений.
wacli messages search "логи доступа"
Это работает в разы быстрее, чем встроенный поиск в любом официальном клиенте.
2. Умная синхронизация и Backfilling
WhatsApp Web по умолчанию отдает только недавнюю историю. Но у wacli есть козырь в рукаве — функция backfill. Она позволяет принудительно запросить у вашего основного устройства (телефона) старые сообщения для конкретного чата.
Интересно, что автор предусмотрел даже возможность массовой «докачки» истории через простой однострочник на Bash, комбинируя wacli с мощью jq.
3. Отправка файлов и сообщений без лишних движений
Нужно отправить файл прямо из терминала? Легко. Причем в последних обновлениях (версия 0.2.0) добавили возможность переопределять имя файла при отправке, что удобно, если в системе файл называется temp_123.pdf, а получателю он должен уйти как report_final.pdf.
wacli send file --to 1234567890 --file ./pic.jpg --caption "Лови скриншот"
4. Управление группами
Для тех, кто администрирует сообщества или просто состоит в сотне рабочих групп, есть команды для листинга и переименования чатов. Всё четко, лаконично и в формате JSON, если вам это нужно для обработки другими скриптами.
Как это устроено внутри
Проект написан на Go, что обеспечивает ему отличную производительность и переносимость. В качестве хранилища используется SQLite, которая располагается в директории ~/.wacli.
Архитектура разделена на два основных процесса:
auth: интерактивный вход через QR-код (как в WhatsApp Web).sync: фоновый процесс (или запускаемый вручную), который поддерживает базу данных в актуальном состоянии.
Кстати, если вы используете macOS, установить утилиту можно одной командой через Homebrew:
brew install steipete/tap/wacli
Практические кейсы: где это применить?
В моей практике я вижу как минимум три крутых сценария использования wacli:
- Мониторинг серверов: Вместо того чтобы настраивать сложные Telegram-боты (если ваша команда сидит только в WhatsApp), можно написать простой скрипт, который при падении сервиса будет слать уведомление через
wacli. - Архивация переписки: Вы можете настроить cron-задачу, которая раз в сутки будет делать
backfillи бэкапить вашу историю сообщений в текстовый файл или другую БД. - Автоматизация отчетности: Генерируете PDF-отчет в конце недели? Добавьте одну строчку в ваш CI/CD или локальный скрипт, чтобы этот отчет сразу улетал в группу проекта.
Стоит ли пробовать?
Если вы цените Unix-философию и хотите иметь больший контроль над своими данными в WhatsApp, то wacli — это «must have». Проект активно развивается, и автор (известный в iOS-сообществе разработчик Peter Steinberger) уделяет внимание деталям UX даже в консольном интерфейсе.
Конечно, стоит помнить, что это стороннее решение, и WhatsApp теоретически может обновлять протоколы. Однако использование проверенной библиотеки whatsmeow сводит риски к минимуму.
Попробуйте запустить wacli doctor, чтобы проверить состояние вашего окружения, и начните наконец-то искать сообщения со скоростью мысли!
Полезные ссылки:
- Репозиторий проекта: steipete/wacli
- Документация по дизайну:
docs/spec.mdв корне репозитория.
