wacli
- title
- wacli
- type
- toolbox
- summary
- Консольный клиент WhatsApp, синхронизирующий историю в локальный SQLite для полнотекстового офлайн-поиска
- tags
- golang, cli, messaging
- language
- Go
- license
- Other
- created
- 2026-04-16
- updated
- 2026-04-16
- lang
- ru
- translation_of
- wacli
- source_updated
- 2026-04-16
- translated
- 2026-09-01
- translator
- lllm/antigravity/gemini-3.7-flash-medium
CLI-клиент WhatsApp для локальной синхронизации сообщений, офлайн-поиска и отправки сообщений. Построен на базе whatsmeow (протокол WhatsApp Web). Архитектура local-first: сохраняет всё в SQLite с FTS5 для быстрого офлайн-поиска.
Что умеет
- Локальная синхронизация истории сообщений с непрерывным перехватом
- Быстрый полнотекстовый офлайн-поиск
- Отправка текстовых сообщений и файлов
- Управление контактами и группами
- Догрузка старых сообщений (best-effort)
Основные команды
# Authenticate (shows QR code) and initial sync
wacli auth
# Continuous sync (no QR, requires prior auth)
wacli sync --follow
# Search messages offline
wacli messages search "meeting"
# Send a message
wacli send text --to 1234567890 --message "hello"
# Send a file with caption
wacli send file --to 1234567890 --file ./pic.jpg --caption "hi"
# Backfill older messages for a chat
wacli history backfill --chat 1234567890@s.whatsapp.net --requests 10 --count 50
# List and manage groups
wacli groups list
wacli groups rename --jid 123456789@g.us --name "New name"
Хранилище
По умолчанию: ~/.wacli (переопределяется через --store DIR). SQLite с FTS5 для поиска.
Догрузка истории
WhatsApp Web присылает данные по мере возможности. Чтобы получить более старые сообщения:
- Запрос отправляется с основного устройства (телефон должен быть в сети)
- Початово, с привязкой к самому старому локальному сообщению
- Best-effort: WhatsApp может вернуть не всю историю
- Рекомендуется:
--count 50на запрос
Догрузка всех известных чатов:
wacli --json chats list --limit 100000 \
| jq -r '.[].JID' \
| while read -r jid; do
wacli history backfill --chat "$jid" --requests 3 --count 50
done
Установка
# Homebrew
brew install steipete/tap/wacli
# Or build from source
go build -tags sqlite_fts5 -o ./dist/wacli ./cmd/wacli
Переменные окружения
WACLI_DEVICE_LABEL- название привязанного устройства, отображаемое в WhatsAppWACLI_DEVICE_PLATFORM- переопределение платформы (по умолчанию CHROME)
Примечания
Сторонний инструмент, не связанный с WhatsApp. Использует протокол WhatsApp Web через whatsmeow. Вывод по умолчанию ориентирован на человека; флаг --json переключает на машиночитаемый формат.
Repo: https://github.com/steipete/wacli (1,554 stars)
Linked from