Install any skill in seconds. Free to start, no credit card required.
Get Started Free →CLI for WhatsApp messaging — sync history, search messages, send texts and files, manage contacts and groups. Use when an agent needs to send WhatsApp messages, search chat history, or manage WhatsApp groups.
.claude/skills/composio-community-whatsapp-cli-wacli/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | -52% | 0% |
| case-01 | ✗→✓ | ▲ Improved | -63% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -51% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -32% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -45% | 0% |
Sync, search, and send WhatsApp messages from the terminal. Built on whatsmeow (WhatsApp Web protocol).
bashbrew install steipete/tap/wacli
Or build from source:
bashgo build -tags sqlite_fts5 -o ./dist/wacli ./cmd/wacli
bash# Shows QR code — scan with WhatsApp on your phone wacli auth # Start continuous sync (must be authenticated first) wacli sync --follow
Default store directory: ~/.wacli (override with --store DIR).
bash# Send a text message wacli send text --to 1234567890 --message "hello" # Send a file with caption wacli send file --to 1234567890 --file ./photo.jpg --caption "Check this out" # Send a file with custom display name wacli send file --to 1234567890 --file /tmp/abc123 --filename report.pdf
bashwacli messages search "meeting" wacli messages search "project update" --json
bashwacli groups list wacli groups rename --jid 123456789@g.us --name "New Group Name"
bash# Backfill older messages for a chat (requires primary device online) wacli history backfill --chat 1234567890@s.whatsapp.net --requests 10 --count 50
bashwacli media download --chat 1234567890@s.whatsapp.net --id <message-id>
bashwacli doctor
--json: structured JSON output for agentsWACLI_DEVICE_LABEL: set linked device label shown in WhatsAppWACLI_DEVICE_PLATFORM: override linked device platform (defaults to CHROME)| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | fail→pass | 14,005 | 3,128 | -78% | 1 | 1 | 0% | 2,107 | 1,008 | -52% | 0 | 0 | — |
case-01 | fail→pass | 15,052 | 7,207 | -52% | 1 | 1 | 0% | 2,834 | 1,040 | -63% | 0 | 0 | — |
case-02 | fail→pass | 11,531 | 2,670 | -77% | 1 | 1 | 0% | 1,886 | 915 | -51% | 0 | 0 | — |
case-03 | fail→pass | 7,639 | 2,384 | -69% | 1 | 1 | 0% | 1,375 | 940 | -32% | 0 | 0 | — |
case-04 | pass→pass | 10,352 | 1,986 | -81% | 1 | 1 | 0% | 1,782 | 902 | -49% | 0 | 0 | — |
case-05 | fail→pass | 9,035 | 1,616 | -82% | 1 | 1 | 0% | 1,472 | 809 | -45% | 0 | 0 | — |
case-07 | pass→pass | 8,421 | 2,049 | -76% | 1 | 1 | 0% | 1,330 | 848 | -36% | 0 | 0 | — |
case-08 | pass→pass | 8,081 | 2,129 | -74% | 1 | 1 | 0% | 1,346 | 953 | -29% | 0 | 0 | — |
case-09 | pass→pass | 9,355 | 2,427 | -74% | 1 | 1 | 0% | 1,326 | 883 | -33% | 0 | 0 | — |
case-10 | pass→pass | 8,732 | 2,266 | -74% | 1 | 1 | 0% | 1,517 | 937 | -38% | 0 | 0 | — |
case-24 | pass→pass | 6,871 | 1,676 | -76% | 1 | 1 | 0% | 1,243 | 882 | -29% | 0 | 0 | — |
case-11 | fail→pass | 11,550 | 2,959 | -74% | 1 | 1 | 0% | 2,038 | 975 | -52% | 0 | 0 | — |
case-12 | pass→pass | 8,597 | 1,742 | -80% | 1 | 1 | 0% | 1,593 | 824 | -48% | 0 | 0 | — |
case-13 | fail→pass | 13,741 | 2,215 | -84% | 1 | 1 | 0% | 2,551 | 924 | -64% | 0 | 0 | — |
case-14 | fail→pass | 8,542 | 1,655 | -81% | 1 | 1 | 0% | 1,567 | 886 | -43% | 0 | 0 | — |
case-15 | fail→pass | 14,876 | 1,841 | -88% | 1 | 1 | 0% | 2,556 | 828 | -68% | 0 | 0 | — |
case-16 | pass→pass | 5,325 | 1,859 | -65% | 1 | 1 | 0% | 942 | 917 | -3% | 0 | 0 | — |
case-17 | pass→pass | 8,001 | 4,185 | -48% | 1 | 1 | 0% | 1,469 | 880 | -40% | 0 | 0 | — |
case-18 | pass→pass | 7,927 | 2,066 | -74% | 1 | 1 | 0% | 1,465 | 975 | -33% | 0 | 0 | — |
case-19 | pass→pass | 3,259 | 2,171 | -33% | 1 | 1 | 0% | 541 | 955 | +77% | 0 | 0 | — |
case-20 | pass→pass | 9,962 | 7,354 | -26% | 1 | 1 | 0% | 1,975 | 1,995 | +1% | 0 | 0 | — |
case-21 | pass→pass | 6,917 | 3,539 | -49% | 1 | 1 | 0% | 1,288 | 1,204 | -7% | 0 | 0 | — |
case-22 | pass→pass | 8,331 | 6,414 | -23% | 1 | 1 | 0% | 1,576 | 1,898 | +20% | 0 | 0 | — |
case-23 | pass→pass | 6,968 | 1,615 | -77% | 1 | 1 | 0% | 1,254 | 802 | -36% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted. The headline lift of +38 percentage points is the difference between those two pass rates over the 24 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.