Install any skill in seconds. Free to start, no credit card required.
Get Started Free →sanjay3290/whatsapp
Send and receive WhatsApp messages via the unofficial linked-device client pywhats (pip install pywhats) — pair with QR, send text/images, group chat, read receipts, presence/typing, and a long-running JSON event stream.
Passed 23 of 23 test cases with the skill, and 8 of 23 without it.
and 15 more in the full report
15 fixed8 passed either way0 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 15 test cases the skill fixed. Same model, same prompt, with and without the skill.
When indicating to recipient `15550001234` that an audio message is currently being recorded rather than text being typed, what flag is appended to the typing CLI command?
| Checked | Without skill | With skill |
|---|---|---|
| The command appends the --media audio flag. | Missed | Passed |
The instructions your model reads when the skill loads.
Drive a WhatsApp account as a linked companion device (like WhatsApp Web)
from async Python via pywhats (pre-alpha,
text/image only). This is an unofficial multi-device client — not the
official WhatsApp Business / Cloud API.
CLI entrypoint: scripts/wa.py (auto-bootstraps a managed venv on first run).
wa.py pair shows an ASCII QR; scan it in
WhatsApp → Linked Devices. Credentials persist to
$PYWHATS_HOME/<session>.session (+ .signal.db).15550001234 → [email protected];
groups use [email protected].wa.py listen prints one JSON object per event.Event handlers run inline on the receive loop. Awaiting send_*,
mark_read, get_group_info, download_media, etc. inside a handler
deadlocks the connection. Always asyncio.create_task(...). The listen
subcommand already does this for --read.
scripts/wa.py pair # one-time QR pair
scripts/wa.py send-text 15550001234 "hello" # 1:1 text
scripts/wa.py send-image 15550001234 photo.jpg --caption hi # 1:1 image
scripts/wa.py group-info [email protected] # group metadata JSON
scripts/wa.py group-send [email protected] "hi all" # group text
scripts/wa.py mark-read 15550001234 MSGID [--sender JID] # blue ticks
scripts/wa.py presence available # global presence
scripts/wa.py typing 15550001234 composing [--media audio] # typing indicator
scripts/wa.py listen --read --events message,receipt # JSONL event stream
scripts/wa.py --session work send-text 15550001234 "hi" # named session
test cases passed, vs 8 / 23 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.