WhatsApp Assistant
CLI tool for WhatsApp communication.
Install
mkdir -p .claude/skills/whatsapp-assistant && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/11565" && unzip -o skill.zip -d .claude/skills/whatsapp-assistant && rm skill.zipInstalls to .claude/skills/whatsapp-assistant
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Read, search, and send WhatsApp messages using whatsapp-cli.Key capabilities
- →List recent WhatsApp chats
- →Read messages from a specific chat
- →Search WhatsApp messages by query term
- →Send messages to individual or group JIDs
- →Sync WhatsApp messages with a timeout
- →Search contacts by name
How it works
The skill invokes `whatsapp-cli` commands with a mandatory `-store` flag to manage WhatsApp messages, chats, and contacts.
Inputs & outputs
When to use WhatsApp Assistant
- →Sending WhatsApp messages from CLI
- →Searching message archives
- →Syncing WhatsApp chats
About this skill
Behavior Notes
CRITICAL: Every command MUST use -store ~/.macbot/whatsapp
The -store flag is MANDATORY on every whatsapp-cli invocation and MUST come immediately after whatsapp-cli, before any subcommand. Without it the CLI uses a different default location and will find no session, no contacts, and no messages.
Copy-paste these exact templates — do NOT remove or reorder -store ~/.macbot/whatsapp:
# Sync (MUST use timeout — sync never exits on its own)
timeout 10 whatsapp-cli -store ~/.macbot/whatsapp sync
# List chats
whatsapp-cli -store ~/.macbot/whatsapp chats list
# List chats filtered
whatsapp-cli -store ~/.macbot/whatsapp chats list --query "NAME"
# List messages from a chat
whatsapp-cli -store ~/.macbot/whatsapp messages list --chat JID --limit 30
# List recent messages across all chats
whatsapp-cli -store ~/.macbot/whatsapp messages list --limit 20
# Search messages
whatsapp-cli -store ~/.macbot/whatsapp messages search --query "TERM"
# Search contacts
whatsapp-cli -store ~/.macbot/whatsapp contacts search --query "NAME"
# Send message
whatsapp-cli -store ~/.macbot/whatsapp send --to JID --message "TEXT"
# Auth (first-time setup)
whatsapp-cli -store ~/.macbot/whatsapp auth
Tool
All commands use run_shell_command to invoke whatsapp-cli.
Authentication
- First-time setup:
whatsapp-cli -store ~/.macbot/whatsapp auth - This displays a QR code the user must scan with WhatsApp on their phone
- Session persists ~20 days before re-authentication is needed
- If any command fails with an auth error, tell the user to run auth again
Syncing Messages
- Sync runs forever until killed — it never exits on its own.
- ALWAYS use the unix
timeoutcommand:timeout 10 whatsapp-cli -store ~/.macbot/whatsapp sync - Do NOT rely on the run_shell_command timeout parameter — you MUST prepend
timeout 10to the command string itself. - Always sync before querying when the user asks for "latest", "new", "recent", or "unread" messages
- If message queries return empty results, run sync and retry
Be Proactive
- When the user asks about a contact (e.g. "messages from Frank"), search contacts AND chats in parallel to find the JID faster
- When summarising messages, add your own interpretation of what the conversation means and suggest possible follow-up actions the user might want to take
- If a message references something actionable (meeting, deadline, document), proactively suggest creating a reminder or calendar event
Listing Chats
- Pagination:
--limit 20 --page 0 - Results are sorted by most recent activity
- Each chat includes a JID (WhatsApp identifier) needed for other commands
Reading Messages
- Pagination:
--limit 20 --page 0 - Messages are sorted newest-first
Searching Messages
- Search is case-insensitive with partial matching
- Pagination:
--limit 20 --page 0
Sending Messages
- Individual JIDs look like:
[email protected] - Group JIDs look like:
[email protected] - Always confirm message content with the user before sending
JID Format
- Individual: phone number without
+followed by@s.whatsapp.net(e.g.[email protected]) - Group: group ID followed by
@g.us - To send to a phone number, construct the JID: strip
+and spaces, append@s.whatsapp.net
Common Request Patterns
- "my recent chats" →
chats listto show conversations - "messages from X" →
chats list --query "X"to find the JID, thenmessages list --chat <JID> - "send X a message" →
contacts search --query "X"to find JID, confirm message, thensend - "search for X" →
messages search --query "X" - "unread messages" →
messages list --limit 20(most recent messages across chats)
Output Format
- All whatsapp-cli commands return JSON
- Parse the JSON output to present results in a readable format to the user
- Show sender name, timestamp, and message content when displaying messages
When not to use it
- →When the user needs to interact with WhatsApp without using the CLI
- →When the user needs to manage WhatsApp calls or media other than messages
- →When the user needs to perform actions not supported by whatsapp-cli
Limitations
- →Every command MUST use `-store ~/.macbot/whatsapp` immediately after `whatsapp-cli`.
- →Sync runs forever until killed, requiring the `timeout` command.
- →Session persists ~20 days before re-authentication is needed.
How it compares
This skill provides a command-line interface for WhatsApp interactions, offering programmatic control over messaging compared to the standard mobile application.
Compared to similar skills
WhatsApp Assistant side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| WhatsApp Assistant (this skill) | 0 | 6mo | No flags | Beginner |
| himalaya | 50 | 2mo | Review | Intermediate |
| officeemail-management | 8 | 8mo | No flags | Intermediate |
| gmail | 16 | 6mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
himalaya
openclaw
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
officeemail-management
harperreed
Handle email tasks (checking inbox, drafting replies, managing threads, adding events to calendar). Use when working with emails to prevent common mistakes like broken threading or missing recipients.
gmail
team-attention
This skill should be used when the user asks to "check email", "read emails", "send email", "reply to email", "search inbox", or manages Gmail. Supports multi-account Gmail integration for reading, searching, sending, and label management.
sendgrid-automation
sickn33
Automate SendGrid email operations including sending emails, managing contacts/lists, sender identities, templates, and analytics via Rube MCP (Composio). Always search tools first for current schemas.
klaviyo
alinaqi
Klaviyo email/SMS marketing - profiles, events, flows, segmentation
slack
motoya0118
Post a question to Slack and wait for a reply, or post a reply into a thread using scripts/slack.py.