概要
wacli は、 whatsmeow ベースのWhatsApp CLIツール。 ローカルでの メッセージ履歴同期 ・ 高速検索 ・ 送信 に特化。 連絡先・グループ管理 やメディア対応も可能。 公式WhatsApp非公認の サードパーティ製 CLI。 Homebrew または ローカルビルド で導入可能。
wacli — WhatsApp CLIの概要
- whatsmeow を基盤とした WhatsApp用CLIツール
- ローカルでのメッセージ履歴同期 と 継続キャプチャ 機能
- オフラインでも高速な全文検索
- メッセージ送信 (テキスト・ファイル・キャプション付き対応)
- 連絡先・グループ管理機能 (参加者管理やグループ名変更など)
- WhatsApp Webプロトコル を利用、 公式とは無関係
- Homebrew または Goビルド で簡単インストール
主な機能・特徴
- 認証 :QRコード表示によるインタラクティブ認証
- 同期 :初回同期後は非インタラクティブで自動同期
- 検索 :メッセージ、リアクション、リプライ、メディア種別も表示対応
- 送信 :テキスト・ファイル・ファイル名指定・キャプション対応
- グループ :リスト表示・名称変更・参加者管理
- ストレージ :デフォルトは
~/.wacli、オプションで変更可能 - 環境変数 でデバイスラベルやプラットフォーム指定可能
インストール方法
- Homebrewでインストール
brew install steipete/tap/wacli
- ローカルビルド
go build -tags sqlite_fts5 -o ./dist/wacli ./cmd/wacli
クイックスタート
- 認証と初期同期
pnpm wacli auth
- 継続同期(認証済み後)
pnpm wacli sync --follow
- 診断コマンド
pnpm wacli doctor
- メッセージ検索
pnpm wacli messages search "meeting"
- 過去メッセージのバックフィル
pnpm wacli history backfill --chat 1234567890@s.whatsapp.net --requests 10 --count 50
- メディアダウンロード
./wacli media download --chat 1234567890@s.whatsapp.net --id <message-id>
- メッセージ送信
pnpm wacli send text --to 1234567890 --message "hello"
- ファイル送信・ファイル名指定
./wacli send file --to 1234567890 --file /tmp/abc123 --filename report.pdf
- グループ一覧・名称変更
pnpm wacli groups listpnpm wacli groups rename --jid 123456789@g.us --name "New name"
利用上の注意点
- バックフィル はベストエフォート
- WhatsApp側の仕様で全履歴取得不可の場合あり
- プライマリデバイス(スマホ)オンライン必須
- 1チャットごとにリクエスト
- 出力形式
- デフォルトは人間可読、
--jsonで機械可読に切替可能
- デフォルトは人間可読、
参考・クレジット
- whatsapp-cli (Vicente Reig氏)から着想・学習
- 詳細設計は
docs/spec.md参照 - ライセンス :プロジェクト内
LICENSE参照
便利なスクリプト例:全チャットのバックフィル
- ローカルDB内の全チャットをループ処理
pnpm -s wacli -- --json chats list --limit 100000 \| jq -r '.[].JID' \| while read -r jid; do pnpm -s wacli -- history backfill --chat "$jid" --requests 3 --count 50; done
環境変数設定例
- WACLI_DEVICE_LABEL :リンクデバイスのラベル指定
- WACLI_DEVICE_PLATFORM :デバイスプラットフォーム指定(未設定時はCHROME)
まとめ
- wacli はWhatsAppをCLIで効率的に操作したいユーザー向け
- 履歴同期・検索・送信・管理 がコマンドラインで完結
- 非公式ツール のため、利用時は自己責任