whatsapp-ultimateWhatsApp skill with a 3-rule security gate. Your agent speaks only when spoken to ā in the right chat, by the right person.
Install via ClawdBot CLI:
clawdbot install globalcaos/whatsapp-ultimateYour agent won't flirt with your boss in the company group.
It won't offer unsolicited life advice to your mother-in-law. It won't settle a family debate about paella with a 400-word essay nobody asked for. It won't reply "Actually..." to your partner's story at 2 AM.
Because WhatsApp Ultimate has a 3-rule security gate: right person + right chat + right prefix = response. Everything else = absolute silence. Not "maybe silence." Not "I'll just help a little." Stone-cold, disciplined, beautiful silence.
That's the gate. Here's the engine:
claude-opus-4-6|sub stamped on each message, so nobody mistakes the bot for a humanThree rules. Zero awkward moments. Because we're that kind of obsessive.
Pair with jarvis-voice for WhatsApp voice notes and ai-humor-ultimate for personality. Both part of a 13-skill cognitive architecture.
š Clone it. Fork it. Break it. Make it yours.
š¤(claude-opus-4-6|sub) or š¤(gpt-4o|api). Instantly know what's running.syncFullHistory: true to backfill messages on reconnectclawhub install whatsapp-ultimate
This skill includes two optional bash scripts that patch OpenClaw source files. The base skill (security gating, admin tools, contact sync) works without them. The patches add:
apply-history-fix.sh ā Captures self-chat messages that Baileys misses. Modifies monitor.ts.apply-model-prefix.sh ā Adds model/auth info to every reply. Modifies response-prefix-template.ts, types.ts, reply-prefix.ts, agent-runner-execution.ts.Before running:
git commit your OpenClaw repo first (so you can git checkout to revert)# Review first, then run:
bash ~/.openclaw/workspace/skills/whatsapp-ultimate/scripts/apply-history-fix.sh
bash ~/.openclaw/workspace/skills/whatsapp-ultimate/scripts/apply-model-prefix.sh
What they touch:
| Script | Files Modified | What Changes |
|--------|---------------|-------------|
| apply-history-fix.sh | src/web/inbound/monitor.ts | Adds insertHistoryMessage() call to store all inbound messages |
| apply-model-prefix.sh | 4 files in src/ | Adds {authMode} and {authProfile} template variables |
To revert: git checkout -- src/ from your OpenClaw repo root.
{
"channels": {
"whatsapp": {
"selfChatMode": true,
"syncFullHistory": true,
"responsePrefix": "š¤({model}|{authMode})",
"dmPolicy": "allowlist",
"allowFrom": ["+your_number"],
"triggerPrefix": "jarvis"
}
}
}
The responsePrefix supports template variables:
| Variable | Example | Description |
|----------|---------|-------------|
| {model} | claude-opus-4-6 | Short model name |
| {authMode} | sub / api | Auth mode: sub = subscription/OAuth, api = API key |
| {provider} | anthropic | Provider name |
| {auth} | sub | Alias for {authMode} |
| {authProfile} | anthropic:oauth | Full auth profile ID |
| {think} | low | Current thinking level |
Prefix examples:
š¤(claude-opus-4-6|sub) ā Opus on subscriptionš¤(claude-opus-4-6|api) ā Opus on API key (costs money!)š¤(gpt-4o|api) ā GPT-4o fallbackš¤(llama3.2:1b|api) ā Local Ollama modelThis lets you immediately identify:
Problem: Baileys doesn't emit messages.upsert events for messages you send from your phone to your own self-chat. They never reach the history DB.
Solution: The patch adds insertHistoryMessage() in the inbound monitor ā right where messages are processed after access control. Every message the bot sees gets stored. Duplicates are silently ignored.
Additionally: syncFullHistory: true triggers full message backfill on reconnect.
whatsapp_history(action="search", query="meeting tomorrow")
whatsapp_history(action="search", chat="Oscar", limit=20)
whatsapp_history(action="stats")
Extract all contacts from all WhatsApp groups:
npx tsx ~/.openclaw/workspace/skills/whatsapp-ultimate/scripts/wa-fetch-contacts.ts
Output: ~/.openclaw/workspace/bank/whatsapp-contacts-full.json
Contains: all groups with participant counts, all contacts with phone numbers (LID-resolved), group membership per contact, admin status.
npx tsx ~/.openclaw/workspace/skills/whatsapp-ultimate/scripts/wa-create-group.ts "Group Name" "+phone1" "+phone2"
Phone numbers in E.164 format. Creator auto-added as admin. Returns group JID.
| Method | Description |
|--------|-------------|
| groupFetchAllParticipating() | Get all groups + participants |
| groupMetadata(jid) | Get single group details |
| groupCreate(name, participants) | Create new group |
| groupUpdateSubject(jid, name) | Rename group |
| groupUpdateDescription(jid, desc) | Update group description |
| groupParticipantsUpdate(jid, participants, action) | Add/remove/promote/demote |
WhatsApp uses LIDs (Linked IDs) internally. The contact sync script automatically resolves LIDs to phone numbers using mappings in ~/.openclaw/credentials/whatsapp/default/lid-mapping-*_reverse.json.
{model}, {authMode} template vars)syncFullHistory config for full backfillGenerated Feb 25, 2026
Deploy the agent in a dedicated WhatsApp group for customer inquiries, using the 3-rule security gate to ensure it only responds to authorized users with specific prefixes. Model ID prefixes help track AI usage, while full history capture logs all interactions for compliance and training.
Use the skill in company WhatsApp groups to automate task reminders, meeting summaries, or FAQs, with security gating preventing unauthorized access. Contact sync and group management tools streamline team updates, and self-chat mode allows administrators to test commands privately.
Implement the agent in student group chats to answer homework questions or provide study tips, with strict rules to avoid unsolicited responses. Typing indicators simulate human interaction, and history capture enables progress tracking and personalized feedback over time.
Integrate the skill into clinic WhatsApp groups for patients to book appointments via trigger prefixes, ensuring privacy with security gating. Full message history maintains records for follow-ups, and model ID prefixes clarify AI-generated responses to avoid confusion.
Deploy in event planning WhatsApp groups to handle attendee queries, send updates, and manage logistics through automated replies. Group creation and management features assist in organizing participant lists, while patches enhance history logging for post-event analysis.
Offer the skill as part of a subscription service for businesses, providing automated WhatsApp support with tiered pricing based on usage or features like contact sync. Revenue comes from monthly fees, with upsells for optional patches or integration with other skills like jarvis-voice.
Provide consulting services to customize and deploy the skill for specific industries, leveraging its open-source nature for tailored security rules or integrations. Revenue is generated through project-based fees and ongoing maintenance contracts.
Distribute the skill for free on platforms like ClawHub, with premium features such as advanced patches or priority support available for purchase. Revenue streams include one-time payments for premium add-ons or commissions from related skill bundles.
š¬ Integration Tip
Ensure OpenClaw is properly configured with required binaries like npx and tsx, and test security gating in a controlled environment before full deployment to prevent unintended responses.
iMessage/SMS CLI for listing chats, history, watch, and sending.
Use when you need to control Discord from Clawdbot via the discord tool: send messages, react, post or upload stickers, upload emojis, run polls, manage threads/pins/search, fetch permissions or member/role/channel info, or handle moderation actions in Discord DMs or channels.
Use when you need to control Slack from Clawdbot via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).
Build or update the BlueBubbles external channel plugin for Clawdbot (extension package, REST send/probe, webhook inbound).
OpenClaw skill for designing Telegram Bot API workflows and command-driven conversations using direct HTTPS requests (no SDKs).