WhatsApp router: history/search/read/send; wacrawl read, wacli live.
Install
npx skills add steipete/agent-scripts --skill whatsapp -g -a claude-code -y- Repository
- steipete/agent-scripts7.4k
- Category
- Engineering
- Updated
- 5d ago
- License
- MIT
- Context cost
- Lightabout 908 tokens
- Runs scripts
- No, instructions only
What it does
WhatsApp router: history/search/read/send; wacrawl read, wacli live.
Use this as the first stop for WhatsApp work. Keep the source boundary sharp:
wacrawl: primary WhatsApp Desktop archive. Read-only, best local history, no network, no sending.wacli: linked-device accounts. Use for alt accounts, live sync, auth, sending, chat/group mutation, and WhatsApp Web protocol questions.
If the user names wacrawl or wacli repo work specifically, read that tool's own skill too.
Routing
- Primary WhatsApp reads/search/history: use
wacrawl. - Read/unread counts from WhatsApp Desktop: use
wacrawl; it has chat-level unread counts, not per-message read state. - Freshness-sensitive primary reads: check
wacrawl status; runwacrawl syncwhen asked or when current data matters. - Alt accounts such as
me,molty, or named stores: usewacli --account NAME. - Sending, reactions, presence, archive/pin/mute/mark-read, group/channel mutations: use
waclionly after explicit user intent. - Comparing coverage between sources: treat
wacrawlas Desktop archive truth for primary history, andwaclias linked-device/live coverage with protocol limits.
Safety
- Never send or mutate WhatsApp state unless explicitly requested.
- Prefer read-only
waclicommands for inspection: pass--read-onlyor setWACLI_READONLY=1. - Do not write into WhatsApp Desktop's app container.
- Do not edit
waclisession.dbdirectly. - Keep named
wacliaccounts isolated; do not merge stores. - Report source freshness, account name, and known gaps when answering from local stores.
Common Commands
Primary Archive
Freshness and status:
wacrawl status
wacrawl doctor
wacrawl sync
Unread triage:
wacrawl chats --limit 20
wacrawl unread --limit 20
wacrawl --json unread --limit 100
Search and slice messages:
