# Whatsapp

WhatsApp router: history/search/read/send; wacrawl read, wacli live.

- Repository: https://github.com/steipete/agent-scripts (7431 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add steipete/agent-scripts --skill whatsapp -g -a claude-code -y`
Codex: `npx skills add steipete/agent-scripts --skill whatsapp -g -a codex -y`
Cursor: `npx skills add steipete/agent-scripts --skill whatsapp -g -a cursor -y`
Gemini CLI: `npx skills add steipete/agent-scripts --skill whatsapp -g -a gemini-cli -y`

## Description

WhatsApp router: history/search/read/send; wacrawl read, wacli live.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# WhatsApp

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`; run `wacrawl sync` when asked or when current data matters.
- Alt accounts such as `me`, `molty`, or named stores: use `wacli --account NAME`.
- Sending, reactions, presence, archive/pin/mute/mark-read, group/channel mutations: use `wacli` only after explicit user intent.
- Comparing coverage between sources: treat `wacrawl` as Desktop archive truth for primary history, and `wacli` as linked-device/live coverage with protocol limits.

## Safety

- Never send or mutate WhatsApp state unless explicitly requested.
- Prefer read-only `wacli` commands for inspection: pass `--read-only` or set `WACLI_READONLY=1`.
- Do not write into WhatsApp Desktop's app container.
- Do not edit `wacli` `session.db` directly.
- Keep named `wacli` accounts 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:

```bash
wacrawl status
wacrawl doctor
wacrawl sync
```

Unread triage:

```bash
wacrawl chats --limit 20
wacrawl unread --limit 20
wacrawl --json unread --limit 100
```

Search and slice messages:

The rest: https://github.com/steipete/agent-scripts/blob/HEAD/skills/whatsapp/SKILL.md
