whatsapp-skill
Send and receive WhatsApp messages. Use when the user asks to send WhatsApp messages, check WhatsApp chats, search messages, or manage WhatsApp contacts. Supports multiple accounts via sessions.
What this skill does
# WhatsApp Skill - Messaging Automation Send messages, read chats, and search WhatsApp via WhatsApp Web automation. ## CRITICAL: Message Confirmation Required **Before sending ANY WhatsApp message, you MUST get explicit user confirmation.** When the user asks to send a message: 1. First, show them the complete message details: - Recipient (phone number or group) - Full message text - Session being used 2. Ask: "Do you want me to send this WhatsApp message?" 3. ONLY run the send command AFTER the user explicitly confirms 4. NEVER send without confirmation ## First-Time Setup ```bash cd ~/.claude/skills/whatsapp-skill npm install ``` This installs: - `whatsapp-web.js` - WhatsApp Web automation - `qrcode-terminal` - QR code display for authentication ## Authentication First time requires scanning a QR code with your phone: ```bash node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js auth ``` 1. QR code appears in terminal 2. Open WhatsApp on your phone 3. Go to Settings → Linked Devices → Link a Device 4. Scan the QR code 5. Session is saved for future use ## Commands ### Authentication & Status ```bash # Authenticate (scan QR) node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js auth [--session NAME] # Check status node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js status [--session NAME] # Logout node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js logout [--session NAME] ``` ### Sending Messages (Requires Confirmation) ```bash # Send to phone number (include country code, no + or spaces) node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js send 14155551234 "Hello!" [--session NAME] # Send to group node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js send-group GROUP_ID "Hello group!" [--session NAME] ``` ### Reading Chats & Messages ```bash # List recent chats node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js chats [--limit N] [--session NAME] # Get messages from a chat node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js messages CHAT_ID [--limit N] [--session NAME] # Search messages node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js search "query" [--session NAME] ``` ### Contacts & Groups ```bash # List contacts node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js contacts [--session NAME] # List groups node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js groups [--session NAME] ``` ## Multi-Account Support Use `--session` flag for different WhatsApp accounts: ```bash # Personal account node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js auth --session personal # Work account node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js auth --session work # Send from specific account node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js send 14155551234 "Hi" --session work ``` Sessions stored in `~/.claude/skills/whatsapp-skill/sessions/` ## Phone Number Format Always use full international format without + or spaces: - US: `14155551234` (1 = country code) - UK: `447911123456` (44 = country code) - India: `919876543210` (91 = country code) ## Chat IDs Chat IDs are returned by the `chats` command: - Individual chats: `[email protected]` - Group chats: `[email protected]` ## Examples ### Send a Quick Message ```bash node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js send 14155551234 "Meeting at 3pm today?" ``` ### Check Recent Chats ```bash node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js chats --limit 5 ``` ### Read Messages from a Contact ```bash node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js messages [email protected] --limit 10 ``` ### Search for Something ```bash node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js search "meeting agenda" ``` ## Output All commands output JSON for easy parsing. ## Requirements - Node.js 16+ - npm - Chrome/Chromium (installed automatically by puppeteer) ## Important Notes - **One phone per session**: Each WhatsApp account can only be linked to one session at a time - **Stay connected**: WhatsApp may disconnect if your phone loses internet for extended periods - **Rate limits**: Don't spam - WhatsApp can ban accounts for suspicious activity - **Business accounts**: Works with both personal and WhatsApp Business accounts ## Security Notes - **Message confirmation required** - Claude must confirm before sending any message - Session data stored in `~/.claude/skills/whatsapp-skill/sessions/` - Sessions contain authentication data - keep secure - Logout removes session data from your computer (but device stays linked in WhatsApp until you unlink) ## Troubleshooting **QR code not appearing?** - Make sure puppeteer dependencies are installed: `npx puppeteer browsers install chrome` **Authentication keeps failing?** - Delete session folder and re-authenticate - Make sure your phone has internet connection **Messages not sending?** - Verify phone number format (country code, no spaces/dashes) - Check if contact has blocked you - Verify WhatsApp is still connected on your phone
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.