WhatsApp channel for Claude Code — send and receive messages, voice notes, and attachments from your running CLI session
9 tools with basic schemas and descriptions, but significant gaps in parameter documentation and error handling. All tools have names starting with action verbs (send_, list_, get_, check_, mark_, download_, set_) which is good. Descriptions are present but brief (avg ~60 chars, below the 194-char baseline). Input schemas visible for all tools with type declarations, but parameter descriptions are minimal and lack constraints (enums, ranges, format specs). No output schemas documented. Error handling is absent, no recovery guidance, no categorization of retryable vs fatal errors. No tool annotations (readOnlyHint/destructiveHint). Security concern: file paths accepted as parameters without clear validation guidance.
Check the current WhatsApp connection status
Download media (image, video, audio, document) from a WhatsApp message
Retrieve message history from a specific chat
Get information about a WhatsApp contact
List all active WhatsApp chats (contacts and groups)
Mark messages as read in a WhatsApp chat
Send a file attachment to a WhatsApp contact or group
Send a text message to a WhatsApp contact or group
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., what does list_chats return? Is it an array of objects with jid, displayName, unreadCount?). This forces agents to guess at response structure.
Parameter descriptions lack constraints. 'to' parameter accepts 'contact name, phone number, or JID' but no format spec, length limits, or validation rules. LLMs cannot determine valid input format without trial-and-error.
No error handling guidance. Tools accept file paths (send_file, download_media) but provide no recovery hints if file not found, permission denied, or path traversal attempted. Code shows path safety checks (assertSendable) but errors are not documented for LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Set or update a custom name for a WhatsApp contact
No tool annotations. Destructive tools (send_message, send_file, mark_read, set_contact_name) lack destructiveHint. Read-only tools (list_chats, get_chat_history, get_contact_info, check_connection) lack readOnlyHint. Agents cannot distinguish safe from risky operations.
Descriptions too brief (avg 50-60 chars vs 194-char baseline). 'Send a text message to a WhatsApp contact or group' lacks context on when to use vs other tools, prerequisites (connection status?), or side effects. Does send_message retry on failure? Is it idempotent?