EnglishРусский Map

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 - название привязанного устройства, отображаемое в WhatsApp
  • WACLI_DEVICE_PLATFORM - переопределение платформы (по умолчанию CHROME)

Примечания

Сторонний инструмент, не связанный с WhatsApp. Использует протокол WhatsApp Web через whatsmeow. Вывод по умолчанию ориентирован на человека; флаг --json переключает на машиночитаемый формат.


Repo: https://github.com/steipete/wacli (1,554 stars)