Professional WhatsApp messaging via the wacli CLI. Use when the user wants the agent to message another person from their personal WhatsApp account, search c...
--- name: wacli-pro description: Professional WhatsApp messaging via the wacli CLI. Use when the user wants the agent to message another person from their personal WhatsApp account, search chat history before replying, draft more human-sounding messages, manage follow-ups, or send files with concise professional tone instead of robotic AI phrasing. --- # Wacli Pro Send WhatsApp messages through `wacli` in a way that feels intentional, human, and context-aware. ## Quick workflow 1. Confirm the recipient, goal, and message constraints. 2. If context matters, inspect recent chat history before drafting. 3. Draft a message that sounds like the user, not like an assistant. 4. Confirm the final text before sending. 5. Send with `wacli` and report exactly what was sent. ## Command set Use these commands directly: ```bash wacli doctor wacli auth wacli sync --follow wacli chats list --limit 20 --query "name or number" wacli messages search "query" --limit 20 --chat <jid> wacli history backfill --chat <jid> --requests 2 --count 50 wacli send text --to "+14155551212" --message "Hello! Running 10 minutes late." wacli send file --to "+14155551212" --file /path/file.pdf --caption "Here it is" ``` Use `--json` when parsing output. ## Drafting rules Write like a competent human using their own WhatsApp, not like support automation. - Prefer short natural sentences. - Match the relationship and context, for example friend, colleague, family, vendor, recruiter. - Keep openings simple: `Hey`, `Hi`, the person's name, or no greeting when the thread already has context. - Use specific details instead of generic filler. - Make requests clear and easy to answer. - Keep warmth subtle. One emoji is fine when it genuinely fits. Zero is usually better for work messages. - Never mention being an AI unless the user explicitly wants that. - Never send templated phrasing like `I hope this message finds you well` unless the user asks for formal style. Avoid these failure modes: - Over-explaining - Corporate boilerplate - Long bullet-heavy messages in casual chats - Fake enthusiasm - Obvious AI phrases like `Certainly`, `Kindly note`, `As discussed`, `Please do the needful` ## Tone calibration Choose the lightest tone that still achieves the goal. ### Casual Use for friends, family, and familiar contacts. Pattern: - short opener - one clear point - optional quick follow-up question Example: `Hey, are you free for a quick call tomorrow evening? Need your help with one thing.` ### Professional and warm Use for coworkers, clients, recruiters, and semi-formal contacts. Pattern: - direct context - clear request or update - polite close only if needed Example: `Hi Ananya, sharing the updated deck here. If it works for you, please review slides 7 to 11 when you get a chance.` ### Firm and concise Use for nudges, payment follow-ups, scheduling, and boundary-setting. Pattern: - reference prior context - state the ask plainly - include the next step or deadline Example: `Hi, following up on the invoice from 12 April. Please let me know if you need anything from my side, otherwise I’d appreciate the payment this week.` ## Context-first messaging Before drafting a reply in an existing conversation, search or backfill first when any of these are true: - the user says `reply`, `follow up`, `answer them`, or `continue the chat` - the relationship or prior promise matters - dates, prices, attachments, or commitments may already exist in the thread - the user asks you to sound natural or like them Suggested sequence: 1. `wacli chats list --query "name or number" --json` 2. `wacli messages search "recent keyword" --chat <jid> --limit 20 --json` 3. `wacli history backfill --chat <jid> --requests 2 --count 50` 4. Draft from the actual context, not assumptions. ## Confirmation policy Require explicit confirmation before sending. Confirm these items in one compact line when possible: - recipient - final message text - attachment, if any If the user already provided exact recipient and exact text and clearly asked to send it now, send it without a second stylistic review, but still restate what was sent afterward. ## Safety and privacy - Do not use `wacli` for the user’s direct chat with OpenClaw. - Do not guess recipients. - If multiple matching chats exist, ask which one. - If the requested message could be sensitive, high-impact, or relationship-damaging, offer a draft first. - Keep personal data exposure to the minimum needed for the send. ## Troubleshooting Run `wacli doctor` first. If authenticated but not connected: - run `wacli sync --follow` - verify the phone is online - retry search or send after connection is restored If chat lookup is weak: - search by number instead of name - run backfill for that chat - use narrower keywords and date windows ## References Read these only when needed: - `references/message-patterns.md` for reusable message shapes and examples - `references/history-workflow.md` for context gathering before replying
don't have the plugin yet? install it then click "run inline in claude" again.
added explicit inputs section with setup guidance (wacli installation, phone online requirement, E.164 format), structured 7-step procedure with input-output pairs, expanded decision points to cover auth expiry, network timeouts, multiple chat matches, sensitive messages, and auto-send bypass, defined output contract with success and failure criteria, and outcome signal with tangible success indicators.
send whatsapp messages through the wacli CLI in a way that feels intentional, human, and context-aware. use this skill when the user wants to message someone from their personal account, reply to existing conversations with proper context, draft messages that sound like them (not an AI), manage follow-ups, or send files. the skill prioritizes natural tone, relationship matching, and explicit confirmation before sending anything.
wacli auth at least once. the CLI stores session state locally (phone-based auth via WhatsApp QR code).wacli chats list --json and match by name or phone number.confirm the recipient's identity, the message goal, and any constraints the user cares about (tone, length, urgency).
if the message is a reply or follow-up to an existing conversation, search or backfill that chat to gather context.
draft the message in the appropriate tone (casual, professional-warm, or firm-concise) based on the relationship and goal.
if the message includes a file, prepare the file path and optional caption.
confirm the final send plan in one compact line (recipient, message text, file and caption if any).
send the message via wacli using the appropriate command (text or file).
report exactly what was sent, including recipient, timestamp (if available from wacli output), and message text or file name.
if the user says "reply", "follow up", "answer them", or "continue the chat": run context-first workflow (steps 2 and 3) to search or backfill history before drafting. do not assume prior commitments or details.
if the relationship or prior promise matters: search or backfill the chat. dates, prices, attachments, or commitments may already exist in the thread. ground your draft in actual history, not assumptions.
if the user asks to "sound natural" or "like me": search recent context to match their actual tone and phrasing style in that conversation. study prior messages to that recipient before drafting.
if multiple matching chats exist for the phone or name: ask the user which one they mean. do not guess.
if the message is sensitive, high-impact, or relationship-damaging (e.g., a breakup, a complaint, a refusal, or a big ask): offer a draft first and require explicit approval before sending. do not auto-send.
if the user provides exact recipient and exact message text and clearly asks "send it now": send without a second stylistic review, but restate what was sent afterward.
if wacli auth is missing or expired: run wacli auth to re-authenticate. a new QR scan may be needed.
if wacli is authenticated but not connected (e.g., "not synced" error or messages not delivering): run wacli sync --follow, verify the phone is online, and retry after connection is restored. network timeouts or stale sessions require a reconnect.
if chat lookup returns no results or weak matches: try searching by phone number instead of name, run wacli history backfill --chat <jid> --requests 2 --count 50 to load more history, or use narrower keywords and date windows.
if the requested message violates safety (e.g., user's direct OpenClaw chat, guessing a recipient, or sharing sensitive personal data): decline and explain why. do not send.
if the send command fails (e.g., invalid phone format, file not found, rate limit hit): report the error, suggest a fix (e.g., re-format the number, verify the file exists, wait before retrying), and do not retry automatically without user approval.
if the file is too large or an unsupported format: wacli will reject it. report the error and ask the user to use a smaller file or different format.
success means:
wacli send text --to <phone> --message "<text>" or wacli send file --to <phone> --file <path> --caption "<caption>".--json flag to ensure machine-readable output.failure or partial success means:
the skill worked when:
the skill failed when:
credits: original skill by prantikmedhi (clawhub). enriched for implexa quality standards.