Claim this agent
Agent DossierCLAWHUBSafety 84/100

Xpersona Agent

Whatsapp Ultimate

WhatsApp skill with a 3-rule security gate. Your agent speaks only when spoken to — in the right chat, by the right person. Skill: Whatsapp Ultimate Owner: globalcaos Summary: WhatsApp skill with a 3-rule security gate. Your agent speaks only when spoken to — in the right chat, by the right person. Tags: latest:3.5.1 Version history: v3.5.1 | 2026-02-26T13:54:06.706Z | user Added ackMessage: gateway-level instant message acknowledgment for visual cue in WhatsApp Web v3.5.0 | 2026-02-26T13:53:12.267Z | auto Big change: Documentation rewrit

OpenClaw · self-declared
2.6K downloadsTrust evidence available
clawhub skill install kn7623hrcwt6rg73a67xw3wyx580asdw:whatsapp-ultimate

Overall rank

#62

Adoption

2.6K downloads

Trust

Unknown

Freshness

Feb 28, 2026

Freshness

Last checked Feb 28, 2026

Best For

Whatsapp Ultimate is best for general automation workflows where OpenClaw compatibility matters.

Not Ideal For

Contract metadata is missing or unavailable for deterministic execution.

Evidence Sources Checked

editorial-content, CLAWHUB, runtime-metrics, public facts pack

Overview

Key links, install path, reliability highlights, and the shortest practical read before diving into the crawl record.

Verifiededitorial-content

Overview

Executive Summary

WhatsApp skill with a 3-rule security gate. Your agent speaks only when spoken to — in the right chat, by the right person. Skill: Whatsapp Ultimate Owner: globalcaos Summary: WhatsApp skill with a 3-rule security gate. Your agent speaks only when spoken to — in the right chat, by the right person. Tags: latest:3.5.1 Version history: v3.5.1 | 2026-02-26T13:54:06.706Z | user Added ackMessage: gateway-level instant message acknowledgment for visual cue in WhatsApp Web v3.5.0 | 2026-02-26T13:53:12.267Z | auto Big change: Documentation rewrit Capability contract not published. No trust telemetry is available yet. 2.6K downloads reported by the source. Last updated 4/15/2026.

No verified compatibility signals2.6K downloads

Trust score

Unknown

Compatibility

OpenClaw

Freshness

Feb 28, 2026

Vendor

Clawhub

Artifacts

0

Benchmarks

0

Last release

3.5.1

Install & run

Setup Snapshot

clawhub skill install kn7623hrcwt6rg73a67xw3wyx580asdw:whatsapp-ultimate
  1. 1

    Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.

  2. 2

    Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Evidence & Timeline

Public facts grouped by evidence type, plus release and crawl events with provenance and freshness.

Verifiededitorial-content

Public facts

Evidence Ledger

Vendor (1)

Vendor

Clawhub

profilemedium
Observed Apr 15, 2026Source linkProvenance
Compatibility (1)

Protocol compatibility

OpenClaw

contractmedium
Observed Apr 15, 2026Source linkProvenance
Release (1)

Latest release

3.5.1

releasemedium
Observed Feb 26, 2026Source linkProvenance
Adoption (1)

Adoption signal

2.6K downloads

profilemedium
Observed Apr 15, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance

Artifacts & Docs

Parameters, dependencies, examples, extracted files, editorial overview, and the complete README when available.

Self-declaredCLAWHUB

Captured outputs

Artifacts Archive

Extracted files

3

Examples

6

Snippets

0

Languages

Unknown

Executable Examples

text

message action=send channel=whatsapp to="+34612345678" message="Hello!"

text

message action=send channel=whatsapp to="+34612345678" message="Check this out" filePath=/path/to/image.jpg

text

message action=poll channel=whatsapp to="+34612345678" pollQuestion="What time?" pollOption=["3pm", "4pm", "5pm"]

text

message action=sticker channel=whatsapp to="+34612345678" filePath=/path/to/sticker.webp

text

message action=send channel=whatsapp to="+34612345678" filePath=/path/to/audio.ogg asVoice=true

text

message action=send channel=whatsapp to="+34612345678" filePath=/path/to/animation.mp4 gifPlayback=true
Extracted Files

SKILL.md

---
name: whatsapp-ultimate
version: 3.5.0
description: "WhatsApp skill with a 3-rule security gate. Your agent speaks only when spoken to — in the right chat, by the right person."
metadata:
  openclaw:
    emoji: "📱"
    requires:
      channels: ["whatsapp"]
---

# WhatsApp Ultimate

**Everything you can do in WhatsApp, your AI agent can do too.**

This skill documents all WhatsApp capabilities available through OpenClaw's native channel integration. No external Docker services, no CLI wrappers — just direct WhatsApp Web protocol via Baileys.

---

## Prerequisites

- OpenClaw with WhatsApp channel configured
- WhatsApp account linked via QR code (`openclaw whatsapp login`)

---

## Capabilities Overview

| Category | Features |
|----------|----------|
| **Messaging** | Text, media, polls, stickers, voice notes, GIFs |
| **Interactions** | Reactions, replies/quotes, edit, unsend |
| **Groups** | Create, rename, icon, description, participants, admin, invite links |

**Total: 22 distinct actions**

---

## Messaging

### Send Text
```
message action=send channel=whatsapp to="+34612345678" message="Hello!"
```

### Send Media (Image/Video/Document)
```
message action=send channel=whatsapp to="+34612345678" message="Check this out" filePath=/path/to/image.jpg
```
Supported: JPG, PNG, GIF, MP4, PDF, DOC, etc.

### Send Poll
```
message action=poll channel=whatsapp to="+34612345678" pollQuestion="What time?" pollOption=["3pm", "4pm", "5pm"]
```

### Send Sticker
```
message action=sticker channel=whatsapp to="+34612345678" filePath=/path/to/sticker.webp
```
Must be WebP format, ideally 512x512.

### Send Voice Note
```
message action=send channel=whatsapp to="+34612345678" filePath=/path/to/audio.ogg asVoice=true
```
**Critical:** Use OGG/Opus format for WhatsApp voice notes. MP3 may not play correctly.

### Send GIF
```
message action=send channel=whatsapp to="+34612345678" filePath=/path/to/animation.mp4 gifPlayback=true
```
Convert GIF to MP4 first (WhatsApp requires this):
```bash
ffmpeg -i input.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" output.mp4 -y
```

---

## Interactions

### Add Reaction
```
message action=react channel=whatsapp chatJid="34612345678@s.whatsapp.net" messageId="ABC123" emoji="🚀"
```

### Remove Reaction
```
message action=react channel=whatsapp chatJid="34612345678@s.whatsapp.net" messageId="ABC123" remove=true
```

### Reply/Quote Message
```
message action=reply channel=whatsapp to="34612345678@s.whatsapp.net" replyTo="QUOTED_MSG_ID" message="Replying to this!"
```

### Edit Message (Own Messages Only)
```
message action=edit channel=whatsapp chatJid="34612345678@s.whatsapp.net" messageId="ABC123" message="Updated text"
```

### Unsend/Delete Message
```
message action=unsend channel=whatsapp chatJid="34612345678@s.whatsapp.net" messageId="ABC123"
```

---

## Group Management

### Create Group
```
message action=group-create channel=whatsapp name="Project Team" participants=["+34

_meta.json

{
  "ownerId": "kn7623hrcwt6rg73a67xw3wyx580asdw",
  "slug": "whatsapp-ultimate",
  "version": "3.5.1",
  "publishedAt": 1772114046706
}

description.md

**WhatsApp Ultimate**

🔹 **Model Identification:** Every message shows the active model and auth mode — `🤖(claude-opus-4-6|sub)` or `🤖(gpt-4o|api)`. Know instantly if you're on a fallback or burning API credits.

🔹 **Complete Message History:** Captures ALL messages including self-chat inbound that standard Baileys misses. Full bidirectional logging for your command channel.

🔹 **Template Variables:** Customize your prefix with `{model}`, `{authMode}`, `{provider}`, `{think}`, and more. Full control over what shows in every message.

🔹 **Security Gating:** 3-rule allowlist — authorized users, authorized chats, trigger prefix.

🔹 **Full History Sync:** Backfill all messages on reconnect with `syncFullHistory: true`.

🔹 **Searchable Archive:** SQLite-backed full-text search across all chats, senders, and date ranges.

🚀 **Install:** `clawhub install whatsapp-ultimate` then run the patch scripts to enhance your OpenClaw instance.

Editorial read

Docs & README

Docs source

CLAWHUB

Editorial quality

ready

WhatsApp skill with a 3-rule security gate. Your agent speaks only when spoken to — in the right chat, by the right person. Skill: Whatsapp Ultimate Owner: globalcaos Summary: WhatsApp skill with a 3-rule security gate. Your agent speaks only when spoken to — in the right chat, by the right person. Tags: latest:3.5.1 Version history: v3.5.1 | 2026-02-26T13:54:06.706Z | user Added ackMessage: gateway-level instant message acknowledgment for visual cue in WhatsApp Web v3.5.0 | 2026-02-26T13:53:12.267Z | auto Big change: Documentation rewrit

Full README

Skill: Whatsapp Ultimate

Owner: globalcaos

Summary: WhatsApp skill with a 3-rule security gate. Your agent speaks only when spoken to — in the right chat, by the right person.

Tags: latest:3.5.1

Version history:

v3.5.1 | 2026-02-26T13:54:06.706Z | user

Added ackMessage: gateway-level instant message acknowledgment for visual cue in WhatsApp Web

v3.5.0 | 2026-02-26T13:53:12.267Z | auto

Big change: Documentation rewritten for clarity and completeness. Many new capabilities detailed.

  • Full WhatsApp feature overview: messaging (text, media, polls, stickers, voice notes, GIFs), interactions (reactions, edit, unsend), and group management (create, modify, participants, invite links)
  • In-depth action syntax and command examples for all 22 supported WhatsApp actions
  • JID (Jabber ID) documentation and best practices for media, stickers, and voice note conversion
  • New in v3.5.0: Added ackMessage—gateway-level instant text acknowledgment on inbound messages; faster feedback than bot replies and more visible than emoji reactions
  • "Tips" and "Comparison" sections now included for context, usage guidance, rate limits, and differences from similar skills
  • Removed old engine/architecture details, focusing now purely on capabilities and usage

v3.4.0 | 2026-02-22T23:36:07.245Z | user

Chat search now resolves LID/JID aliases across both @lid and @s.whatsapp.net formats

v3.3.0 | 2026-02-21T00:06:39.951Z | user

Security scan response: patches now clearly marked as optional with review instructions, file modification table, revert command. Fixed 12→13 skill count. Replied to @Cranbaerry comment about whatsapp_history access.

v3.2.0 | 2026-02-20T23:11:11.147Z | user

Security scan fixes: declared all required bins (npx, tsx, sed, python3), added patches block documenting which source files are modified and how, expanded security notes explaining patch mechanism, credential usage, and network scope.

v3.1.0 | 2026-02-20T23:07:12.248Z | user

New marketing copy: humor-driven security gate pitch, won't-pattern hook, pairing section with fork conversion link.

v3.0.0 | 2026-02-20T22:56:05.774Z | user

Merged whatsapp-tools: contact sync, group creation, admin operations. Added metadata.openclaw with required bins, channels, security notes. Now truly ultimate — messaging + administration in one skill.

v2.2.0 | 2026-02-20T10:19:40.729Z | user

Added model + auth mode prefix template ({model}, {authMode}). Every message now shows which model and whether subscription or API is active.

v2.1.0 | 2026-02-20T10:03:36.464Z | user

Fixed: Self-chat inbound messages now captured in history DB. Added install script to patch OpenClaw core. Added syncFullHistory config for full backfill on reconnect.

v2.0.3 | 2026-02-18T10:50:08.427Z | user

v2.0.3: Clarified Rule 1 — agent sees all chats but only responds in allowed groups.

v2.0.2 | 2026-02-18T10:46:09.770Z | user

v2.0.2: Expanded 3-rule gate explanation with plain-language breakdown of each rule and real-world examples.

v2.0.1 | 2026-02-18T10:41:31.992Z | user

v2.0.1: Complete marketing rewrite — audience-focused pitch, cross-links to 10 companion skills, competitive comparison, quick-start config, voice pipeline docs, 3-rule gate explanation.

v2.0.0 | 2026-02-18T10:35:08.650Z | user

v2.0: Strict 3-rule group gate (no bypasses). DM prefix gate. Audio preflight passthrough for voice note transcription. responsePrefix config. triggerPrefix for all conversations.

v1.9.0 | 2026-02-16T19:46:26.145Z | user

Thinking heartbeat: alternating 🤔↔🧐 reactions (~1s interval) as processing watchdog. messagePrefix documentation.

v1.8.2 | 2026-02-16T07:58:38.697Z | user

Add messagePrefix documentation — use emoji (🤖) for instant agent identification in chats

v1.8.1 | 2026-02-14T22:39:27.827Z | user

Fix: reliable thinking reaction cleanup — 🤔 now properly removed on reply delivery with safety net after dispatch. No more stuck reactions.

v1.8.0 | 2026-02-14T22:21:42.687Z | user

🤔 Thinking Reaction: visible progress indicator for groups (workaround for WhatsApp broken typing indicators on linked devices). Owner voice/media messages bypass triggerPrefix in groups. markOnlineOnConnect + available presence before composing.

v1.7.1 | 2026-02-14T20:34:45.380Z | user

Add clean DM behavior guide: verboseDefault off config, voice transcript in replies

v1.7.0 | 2026-02-14T20:25:06.040Z | user

Voice note transcription with triggerPrefix matching, metallic voice replies (sherpa-onnx), echo prevention for bot-sent voice notes, audio preflight before prefix check

v1.6.1 | 2026-02-14T19:15:07.573Z | user

Smart offline recovery: recovered messages tagged for review-before-action instead of blind execution

v1.6.0 | 2026-02-14T19:11:27.092Z | user

Offline message recovery: gateway automatically processes messages received during downtime (6h window). Self-chat fix: messages from primary phone now reach the agent reliably.

v1.5.2 | 2026-02-13T22:12:32.373Z | user

Fix repository/homepage links to fork

v1.5.1 | 2026-02-13T22:09:25.074Z | user

SEO-optimized description and keywords for better discoverability

v1.5.0 | 2026-02-13T15:49:51.665Z | user

v1.5.0: Full history resync via re-link — pull months/years of old messages into SQLite. Includes whatsapp-resync plugin with automatic backup, restore endpoint, and INITIAL_BOOTSTRAP sync capture. Tested: 3.2K→17.6K messages, 3+ years of history recovered.

v1.3.0 | 2026-02-12T15:15:07.687Z | user

SEO-optimized description, 12 tags for discoverability, expanded comparison table, use-case triggers, getGroupInfo tips

v1.2.1 | 2026-02-11T06:20:27.877Z | user

v1.2.1: Improved message history docs, added comparison table rows for history/search/import, added daily summary cron pattern, cleaned up dead hook-based archiver.

v1.1.2 | 2026-02-08T23:34:55.919Z | user

Added credits, fixed repository link

v1.1.1 | 2026-02-08T05:10:38.632Z | user

Fix: replaced identifiable example names with generic ones

v1.2.0 | 2026-02-06T21:02:55.646Z | user

v1.2.0: Added persistent message history with SQLite + FTS5 full-text search. Import WhatsApp exports, search conversations, recall what was said. Repository link added.

v1.1.0 | 2026-02-06T20:02:30.416Z | user

Added access control docs and troubleshooting for DM sender attribution fix

v1.0.1 | 2026-02-06T19:35:18.033Z | user

Bug fix: senderE164 resolution for outbound DMs

v1.0.0 | 2026-02-06T11:44:03.725Z | user

Initial release: 22 actions - full messaging, interactions, group management. Native Baileys integration.

Archive index:

Archive v3.5.1: 7 files, 11751 bytes

Files: description.md (972b), scripts/apply-history-fix.sh (4212b), scripts/apply-model-prefix.sh (5313b), scripts/wa-create-group.ts (2392b), scripts/wa-fetch-contacts.ts (5978b), SKILL.md (8317b), _meta.json (136b)

File v3.5.1:SKILL.md


name: whatsapp-ultimate version: 3.5.0 description: "WhatsApp skill with a 3-rule security gate. Your agent speaks only when spoken to — in the right chat, by the right person." metadata: openclaw: emoji: "📱" requires: channels: ["whatsapp"]

WhatsApp Ultimate

Everything you can do in WhatsApp, your AI agent can do too.

This skill documents all WhatsApp capabilities available through OpenClaw's native channel integration. No external Docker services, no CLI wrappers — just direct WhatsApp Web protocol via Baileys.


Prerequisites

  • OpenClaw with WhatsApp channel configured
  • WhatsApp account linked via QR code (openclaw whatsapp login)

Capabilities Overview

| Category | Features | |----------|----------| | Messaging | Text, media, polls, stickers, voice notes, GIFs | | Interactions | Reactions, replies/quotes, edit, unsend | | Groups | Create, rename, icon, description, participants, admin, invite links |

Total: 22 distinct actions


Messaging

Send Text

message action=send channel=whatsapp to="+34612345678" message="Hello!"

Send Media (Image/Video/Document)

message action=send channel=whatsapp to="+34612345678" message="Check this out" filePath=/path/to/image.jpg

Supported: JPG, PNG, GIF, MP4, PDF, DOC, etc.

Send Poll

message action=poll channel=whatsapp to="+34612345678" pollQuestion="What time?" pollOption=["3pm", "4pm", "5pm"]

Send Sticker

message action=sticker channel=whatsapp to="+34612345678" filePath=/path/to/sticker.webp

Must be WebP format, ideally 512x512.

Send Voice Note

message action=send channel=whatsapp to="+34612345678" filePath=/path/to/audio.ogg asVoice=true

Critical: Use OGG/Opus format for WhatsApp voice notes. MP3 may not play correctly.

Send GIF

message action=send channel=whatsapp to="+34612345678" filePath=/path/to/animation.mp4 gifPlayback=true

Convert GIF to MP4 first (WhatsApp requires this):

ffmpeg -i input.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" output.mp4 -y

Interactions

Add Reaction

message action=react channel=whatsapp chatJid="34612345678@s.whatsapp.net" messageId="ABC123" emoji="🚀"

Remove Reaction

message action=react channel=whatsapp chatJid="34612345678@s.whatsapp.net" messageId="ABC123" remove=true

Reply/Quote Message

message action=reply channel=whatsapp to="34612345678@s.whatsapp.net" replyTo="QUOTED_MSG_ID" message="Replying to this!"

Edit Message (Own Messages Only)

message action=edit channel=whatsapp chatJid="34612345678@s.whatsapp.net" messageId="ABC123" message="Updated text"

Unsend/Delete Message

message action=unsend channel=whatsapp chatJid="34612345678@s.whatsapp.net" messageId="ABC123"

Group Management

Create Group

message action=group-create channel=whatsapp name="Project Team" participants=["+34612345678", "+34687654321"]

Rename Group

message action=renameGroup channel=whatsapp groupId="123456789@g.us" name="New Name"

Set Group Icon

message action=setGroupIcon channel=whatsapp groupId="123456789@g.us" filePath=/path/to/icon.jpg

Set Group Description

message action=setGroupDescription channel=whatsapp groupJid="123456789@g.us" description="Team chat for Q1 project"

Add Participant

message action=addParticipant channel=whatsapp groupId="123456789@g.us" participant="+34612345678"

Remove Participant

message action=removeParticipant channel=whatsapp groupId="123456789@g.us" participant="+34612345678"

Promote to Admin

message action=promoteParticipant channel=whatsapp groupJid="123456789@g.us" participants=["+34612345678"]

Demote from Admin

message action=demoteParticipant channel=whatsapp groupJid="123456789@g.us" participants=["+34612345678"]

Leave Group

message action=leaveGroup channel=whatsapp groupId="123456789@g.us"

Get Invite Link

message action=getInviteCode channel=whatsapp groupJid="123456789@g.us"

Returns: https://chat.whatsapp.com/XXXXX

Revoke Invite Link

message action=revokeInviteCode channel=whatsapp groupJid="123456789@g.us"

Get Group Info

message action=getGroupInfo channel=whatsapp groupJid="123456789@g.us"

Returns: name, description, participants, admins, creation date.


JID Formats

WhatsApp uses JIDs (Jabber IDs) internally:

| Type | Format | Example | |------|--------|---------| | Individual | <number>@s.whatsapp.net | 34612345678@s.whatsapp.net | | Group | <id>@g.us | 123456789012345678@g.us |

When using to= with phone numbers, OpenClaw auto-converts to JID format.


Tips

Voice Notes

Always use OGG/Opus format:

ffmpeg -i input.wav -c:a libopus -b:a 64k output.ogg

Stickers

Convert images to WebP stickers:

ffmpeg -i input.png -vf "scale=512:512:force_original_aspect_ratio=decrease,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=0x00000000" output.webp

Acknowledgment Messages (ackMessage)

Send an instant text message when an inbound message is received — fires at gateway level before model inference:

{
  "channels": {
    "whatsapp": {
      "ackMessage": {
        "text": "⚡",
        "direct": true,
        "group": "never"
      }
    }
  }
}

| Field | Type | Default | Description | |-------|------|---------|-------------| | text | string | "" | Message to send (empty = disabled) | | direct | boolean | true | Send in direct chats | | group | "always" / "mentions" / "never" | "never" | Group behavior |

This is different from ackReaction (which sends an emoji reaction). ackMessage sends a standalone message bubble — visible in WhatsApp Web even when reaction flips aren't.

Rate Limits

WhatsApp has anti-spam measures. Avoid:

  • Bulk messaging to many contacts
  • Rapid-fire messages
  • Messages to contacts who haven't messaged you first

Message IDs

To react/edit/unsend, you need the message ID. Incoming messages include this in the event payload. For your own sent messages, the send response includes the ID.


Comparison with Other Skills

| Feature | whatsapp-ultimate | wacli | whatsapp-automation | gif-whatsapp | |---------|-------------------|-------|---------------------|--------------| | Native integration | ✅ | ❌ (CLI) | ❌ (Docker) | N/A | | Send text | ✅ | ✅ | ❌ | ❌ | | Send media | ✅ | ✅ | ❌ | ❌ | | Polls | ✅ | ❌ | ❌ | ❌ | | Stickers | ✅ | ❌ | ❌ | ❌ | | Voice notes | ✅ | ❌ | ❌ | ❌ | | GIFs | ✅ | ❌ | ❌ | ✅ | | Reactions | ✅ | ❌ | ❌ | ❌ | | Reply/Quote | ✅ | ❌ | ❌ | ❌ | | Edit | ✅ | ❌ | ❌ | ❌ | | Unsend | ✅ | ❌ | ❌ | ❌ | | Group create | ✅ | ❌ | ❌ | ❌ | | Group management | ✅ (full) | ❌ | ❌ | ❌ | | Receive messages | ✅ | ✅ | ✅ | ❌ | | Two-way chat | ✅ | ❌ | ❌ | ❌ | | External deps | None | Go binary | Docker + WAHA | ffmpeg |


3.5.0

  • Added: ackMessage — gateway-level instant message acknowledgment. Sends a configurable text message (e.g. ⚡) the moment an inbound message arrives, before any model inference. Fires at the same speed as ackReaction (emoji flip). Useful as a visual cue to distinguish your messages from bot replies in WhatsApp Web where reaction flips aren't visible.

3.4.0

  • Fixed: Chat search now resolves LID/JID aliases — searching by chat name finds messages across both @lid and @s.whatsapp.net JID formats
  • Added: resolveChatJids() cross-references chats, contacts, and messages tables to discover all JID aliases for a given chat filter
  • Improved: Search falls back to original LIKE behaviour if no JIDs resolve, so no regressions

3.0.0

Your Agent
    ↓
OpenClaw message tool
    ↓
WhatsApp Channel Plugin
    ↓
Baileys (WhatsApp Web Protocol)
    ↓
WhatsApp Servers

No external services. No Docker. No CLI tools. Direct protocol integration.


License

MIT — Part of OpenClaw


Links

  • OpenClaw: https://github.com/openclaw/openclaw
  • Baileys: https://github.com/WhiskeySockets/Baileys
  • ClawHub: https://clawhub.com

File v3.5.1:_meta.json

{ "ownerId": "kn7623hrcwt6rg73a67xw3wyx580asdw", "slug": "whatsapp-ultimate", "version": "3.5.1", "publishedAt": 1772114046706 }

File v3.5.1:description.md

WhatsApp Ultimate

🔹 Model Identification: Every message shows the active model and auth mode — 🤖(claude-opus-4-6|sub) or 🤖(gpt-4o|api). Know instantly if you're on a fallback or burning API credits.

🔹 Complete Message History: Captures ALL messages including self-chat inbound that standard Baileys misses. Full bidirectional logging for your command channel.

🔹 Template Variables: Customize your prefix with {model}, {authMode}, {provider}, {think}, and more. Full control over what shows in every message.

🔹 Security Gating: 3-rule allowlist — authorized users, authorized chats, trigger prefix.

🔹 Full History Sync: Backfill all messages on reconnect with syncFullHistory: true.

🔹 Searchable Archive: SQLite-backed full-text search across all chats, senders, and date ranges.

🚀 Install: clawhub install whatsapp-ultimate then run the patch scripts to enhance your OpenClaw instance.

Archive v3.5.0: 7 files, 11751 bytes

Files: description.md (972b), scripts/apply-history-fix.sh (4212b), scripts/apply-model-prefix.sh (5313b), scripts/wa-create-group.ts (2392b), scripts/wa-fetch-contacts.ts (5978b), SKILL.md (8317b), _meta.json (136b)

File v3.5.0:SKILL.md


name: whatsapp-ultimate version: 3.5.0 description: "WhatsApp skill with a 3-rule security gate. Your agent speaks only when spoken to — in the right chat, by the right person." metadata: openclaw: emoji: "📱" requires: channels: ["whatsapp"]

WhatsApp Ultimate

Everything you can do in WhatsApp, your AI agent can do too.

This skill documents all WhatsApp capabilities available through OpenClaw's native channel integration. No external Docker services, no CLI wrappers — just direct WhatsApp Web protocol via Baileys.


Prerequisites

  • OpenClaw with WhatsApp channel configured
  • WhatsApp account linked via QR code (openclaw whatsapp login)

Capabilities Overview

| Category | Features | |----------|----------| | Messaging | Text, media, polls, stickers, voice notes, GIFs | | Interactions | Reactions, replies/quotes, edit, unsend | | Groups | Create, rename, icon, description, participants, admin, invite links |

Total: 22 distinct actions


Messaging

Send Text

message action=send channel=whatsapp to="+34612345678" message="Hello!"

Send Media (Image/Video/Document)

message action=send channel=whatsapp to="+34612345678" message="Check this out" filePath=/path/to/image.jpg

Supported: JPG, PNG, GIF, MP4, PDF, DOC, etc.

Send Poll

message action=poll channel=whatsapp to="+34612345678" pollQuestion="What time?" pollOption=["3pm", "4pm", "5pm"]

Send Sticker

message action=sticker channel=whatsapp to="+34612345678" filePath=/path/to/sticker.webp

Must be WebP format, ideally 512x512.

Send Voice Note

message action=send channel=whatsapp to="+34612345678" filePath=/path/to/audio.ogg asVoice=true

Critical: Use OGG/Opus format for WhatsApp voice notes. MP3 may not play correctly.

Send GIF

message action=send channel=whatsapp to="+34612345678" filePath=/path/to/animation.mp4 gifPlayback=true

Convert GIF to MP4 first (WhatsApp requires this):

ffmpeg -i input.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" output.mp4 -y

Interactions

Add Reaction

message action=react channel=whatsapp chatJid="34612345678@s.whatsapp.net" messageId="ABC123" emoji="🚀"

Remove Reaction

message action=react channel=whatsapp chatJid="34612345678@s.whatsapp.net" messageId="ABC123" remove=true

Reply/Quote Message

message action=reply channel=whatsapp to="34612345678@s.whatsapp.net" replyTo="QUOTED_MSG_ID" message="Replying to this!"

Edit Message (Own Messages Only)

message action=edit channel=whatsapp chatJid="34612345678@s.whatsapp.net" messageId="ABC123" message="Updated text"

Unsend/Delete Message

message action=unsend channel=whatsapp chatJid="34612345678@s.whatsapp.net" messageId="ABC123"

Group Management

Create Group

message action=group-create channel=whatsapp name="Project Team" participants=["+34612345678", "+34687654321"]

Rename Group

message action=renameGroup channel=whatsapp groupId="123456789@g.us" name="New Name"

Set Group Icon

message action=setGroupIcon channel=whatsapp groupId="123456789@g.us" filePath=/path/to/icon.jpg

Set Group Description

message action=setGroupDescription channel=whatsapp groupJid="123456789@g.us" description="Team chat for Q1 project"

Add Participant

message action=addParticipant channel=whatsapp groupId="123456789@g.us" participant="+34612345678"

Remove Participant

message action=removeParticipant channel=whatsapp groupId="123456789@g.us" participant="+34612345678"

Promote to Admin

message action=promoteParticipant channel=whatsapp groupJid="123456789@g.us" participants=["+34612345678"]

Demote from Admin

message action=demoteParticipant channel=whatsapp groupJid="123456789@g.us" participants=["+34612345678"]

Leave Group

message action=leaveGroup channel=whatsapp groupId="123456789@g.us"

Get Invite Link

message action=getInviteCode channel=whatsapp groupJid="123456789@g.us"

Returns: https://chat.whatsapp.com/XXXXX

Revoke Invite Link

message action=revokeInviteCode channel=whatsapp groupJid="123456789@g.us"

Get Group Info

message action=getGroupInfo channel=whatsapp groupJid="123456789@g.us"

Returns: name, description, participants, admins, creation date.


JID Formats

WhatsApp uses JIDs (Jabber IDs) internally:

| Type | Format | Example | |------|--------|---------| | Individual | <number>@s.whatsapp.net | 34612345678@s.whatsapp.net | | Group | <id>@g.us | 123456789012345678@g.us |

When using to= with phone numbers, OpenClaw auto-converts to JID format.


Tips

Voice Notes

Always use OGG/Opus format:

ffmpeg -i input.wav -c:a libopus -b:a 64k output.ogg

Stickers

Convert images to WebP stickers:

ffmpeg -i input.png -vf "scale=512:512:force_original_aspect_ratio=decrease,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=0x00000000" output.webp

Acknowledgment Messages (ackMessage)

Send an instant text message when an inbound message is received — fires at gateway level before model inference:

{
  "channels": {
    "whatsapp": {
      "ackMessage": {
        "text": "⚡",
        "direct": true,
        "group": "never"
      }
    }
  }
}

| Field | Type | Default | Description | |-------|------|---------|-------------| | text | string | "" | Message to send (empty = disabled) | | direct | boolean | true | Send in direct chats | | group | "always" / "mentions" / "never" | "never" | Group behavior |

This is different from ackReaction (which sends an emoji reaction). ackMessage sends a standalone message bubble — visible in WhatsApp Web even when reaction flips aren't.

Rate Limits

WhatsApp has anti-spam measures. Avoid:

  • Bulk messaging to many contacts
  • Rapid-fire messages
  • Messages to contacts who haven't messaged you first

Message IDs

To react/edit/unsend, you need the message ID. Incoming messages include this in the event payload. For your own sent messages, the send response includes the ID.


Comparison with Other Skills

| Feature | whatsapp-ultimate | wacli | whatsapp-automation | gif-whatsapp | |---------|-------------------|-------|---------------------|--------------| | Native integration | ✅ | ❌ (CLI) | ❌ (Docker) | N/A | | Send text | ✅ | ✅ | ❌ | ❌ | | Send media | ✅ | ✅ | ❌ | ❌ | | Polls | ✅ | ❌ | ❌ | ❌ | | Stickers | ✅ | ❌ | ❌ | ❌ | | Voice notes | ✅ | ❌ | ❌ | ❌ | | GIFs | ✅ | ❌ | ❌ | ✅ | | Reactions | ✅ | ❌ | ❌ | ❌ | | Reply/Quote | ✅ | ❌ | ❌ | ❌ | | Edit | ✅ | ❌ | ❌ | ❌ | | Unsend | ✅ | ❌ | ❌ | ❌ | | Group create | ✅ | ❌ | ❌ | ❌ | | Group management | ✅ (full) | ❌ | ❌ | ❌ | | Receive messages | ✅ | ✅ | ✅ | ❌ | | Two-way chat | ✅ | ❌ | ❌ | ❌ | | External deps | None | Go binary | Docker + WAHA | ffmpeg |


3.5.0

  • Added: ackMessage — gateway-level instant message acknowledgment. Sends a configurable text message (e.g. ⚡) the moment an inbound message arrives, before any model inference. Fires at the same speed as ackReaction (emoji flip). Useful as a visual cue to distinguish your messages from bot replies in WhatsApp Web where reaction flips aren't visible.

3.4.0

  • Fixed: Chat search now resolves LID/JID aliases — searching by chat name finds messages across both @lid and @s.whatsapp.net JID formats
  • Added: resolveChatJids() cross-references chats, contacts, and messages tables to discover all JID aliases for a given chat filter
  • Improved: Search falls back to original LIKE behaviour if no JIDs resolve, so no regressions

3.0.0

Your Agent
    ↓
OpenClaw message tool
    ↓
WhatsApp Channel Plugin
    ↓
Baileys (WhatsApp Web Protocol)
    ↓
WhatsApp Servers

No external services. No Docker. No CLI tools. Direct protocol integration.


License

MIT — Part of OpenClaw


Links

  • OpenClaw: https://github.com/openclaw/openclaw
  • Baileys: https://github.com/WhiskeySockets/Baileys
  • ClawHub: https://clawhub.com

File v3.5.0:_meta.json

{ "ownerId": "kn7623hrcwt6rg73a67xw3wyx580asdw", "slug": "whatsapp-ultimate", "version": "3.5.0", "publishedAt": 1772113992267 }

File v3.5.0:description.md

WhatsApp Ultimate

🔹 Model Identification: Every message shows the active model and auth mode — 🤖(claude-opus-4-6|sub) or 🤖(gpt-4o|api). Know instantly if you're on a fallback or burning API credits.

🔹 Complete Message History: Captures ALL messages including self-chat inbound that standard Baileys misses. Full bidirectional logging for your command channel.

🔹 Template Variables: Customize your prefix with {model}, {authMode}, {provider}, {think}, and more. Full control over what shows in every message.

🔹 Security Gating: 3-rule allowlist — authorized users, authorized chats, trigger prefix.

🔹 Full History Sync: Backfill all messages on reconnect with syncFullHistory: true.

🔹 Searchable Archive: SQLite-backed full-text search across all chats, senders, and date ranges.

🚀 Install: clawhub install whatsapp-ultimate then run the patch scripts to enhance your OpenClaw instance.

API & Reliability

Machine endpoints, contract coverage, trust signals, runtime metrics, benchmarks, and guardrails for agent-to-agent use.

MissingCLAWHUB

Machine interfaces

Contract & API

Contract coverage

Status

missing

Auth

None

Streaming

No

Data region

Unspecified

Protocol support

OpenClaw: self-declared

Requires: none

Forbidden: none

Guardrails

Operational confidence: low

No positive guardrails captured.
Invocation examples
curl -s "https://xpersona.co/api/v1/agents/clawhub-globalcaos-whatsapp-ultimate/snapshot"
curl -s "https://xpersona.co/api/v1/agents/clawhub-globalcaos-whatsapp-ultimate/contract"
curl -s "https://xpersona.co/api/v1/agents/clawhub-globalcaos-whatsapp-ultimate/trust"

Operational fit

Reliability & Benchmarks

Trust signals

Handshake

UNKNOWN

Confidence

unknown

Attempts 30d

unknown

Fallback rate

unknown

Runtime metrics

Observed P50

unknown

Observed P95

unknown

Rate limit

unknown

Estimated cost

unknown

Do not use if

Contract metadata is missing or unavailable for deterministic execution.
No benchmark suites or observed failure patterns are available.

Machine Appendix

Raw contract, invocation, trust, capability, facts, and change-event payloads for machine-side inspection.

MissingCLAWHUB

Contract JSON

{
  "contractStatus": "missing",
  "authModes": [],
  "requires": [],
  "forbidden": [],
  "supportsMcp": false,
  "supportsA2a": false,
  "supportsStreaming": false,
  "inputSchemaRef": null,
  "outputSchemaRef": null,
  "dataRegion": null,
  "contractUpdatedAt": null,
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Invocation Guide

{
  "preferredApi": {
    "snapshotUrl": "https://xpersona.co/api/v1/agents/clawhub-globalcaos-whatsapp-ultimate/snapshot",
    "contractUrl": "https://xpersona.co/api/v1/agents/clawhub-globalcaos-whatsapp-ultimate/contract",
    "trustUrl": "https://xpersona.co/api/v1/agents/clawhub-globalcaos-whatsapp-ultimate/trust"
  },
  "curlExamples": [
    "curl -s \"https://xpersona.co/api/v1/agents/clawhub-globalcaos-whatsapp-ultimate/snapshot\"",
    "curl -s \"https://xpersona.co/api/v1/agents/clawhub-globalcaos-whatsapp-ultimate/contract\"",
    "curl -s \"https://xpersona.co/api/v1/agents/clawhub-globalcaos-whatsapp-ultimate/trust\""
  ],
  "jsonRequestTemplate": {
    "query": "summarize this repo",
    "constraints": {
      "maxLatencyMs": 2000,
      "protocolPreference": [
        "OPENCLEW"
      ]
    }
  },
  "jsonResponseTemplate": {
    "ok": true,
    "result": {
      "summary": "...",
      "confidence": 0.9
    },
    "meta": {
      "source": "CLAWHUB",
      "generatedAt": "2026-04-17T05:14:01.434Z"
    }
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "backoffMs": [
      500,
      1500,
      3500
    ],
    "retryableConditions": [
      "HTTP_429",
      "HTTP_503",
      "NETWORK_TIMEOUT"
    ]
  }
}

Trust JSON

{
  "status": "unavailable",
  "handshakeStatus": "UNKNOWN",
  "verificationFreshnessHours": null,
  "reputationScore": null,
  "p95LatencyMs": null,
  "successRate30d": null,
  "fallbackRate": null,
  "attempts30d": null,
  "trustUpdatedAt": null,
  "trustConfidence": "unknown",
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Capability Matrix

{
  "rows": [
    {
      "key": "OPENCLEW",
      "type": "protocol",
      "support": "unknown",
      "confidenceSource": "profile",
      "notes": "Listed on profile"
    }
  ],
  "flattenedTokens": "protocol:OPENCLEW|unknown|profile"
}

Facts JSON

[
  {
    "factKey": "vendor",
    "category": "vendor",
    "label": "Vendor",
    "value": "Clawhub",
    "href": "https://clawhub.ai/globalcaos/whatsapp-ultimate",
    "sourceUrl": "https://clawhub.ai/globalcaos/whatsapp-ultimate",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-04-15T00:45:39.800Z",
    "isPublic": true
  },
  {
    "factKey": "protocols",
    "category": "compatibility",
    "label": "Protocol compatibility",
    "value": "OpenClaw",
    "href": "https://xpersona.co/api/v1/agents/clawhub-globalcaos-whatsapp-ultimate/contract",
    "sourceUrl": "https://xpersona.co/api/v1/agents/clawhub-globalcaos-whatsapp-ultimate/contract",
    "sourceType": "contract",
    "confidence": "medium",
    "observedAt": "2026-04-15T00:45:39.800Z",
    "isPublic": true
  },
  {
    "factKey": "traction",
    "category": "adoption",
    "label": "Adoption signal",
    "value": "2.6K downloads",
    "href": "https://clawhub.ai/globalcaos/whatsapp-ultimate",
    "sourceUrl": "https://clawhub.ai/globalcaos/whatsapp-ultimate",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-04-15T00:45:39.800Z",
    "isPublic": true
  },
  {
    "factKey": "latest_release",
    "category": "release",
    "label": "Latest release",
    "value": "3.5.1",
    "href": "https://clawhub.ai/globalcaos/whatsapp-ultimate",
    "sourceUrl": "https://clawhub.ai/globalcaos/whatsapp-ultimate",
    "sourceType": "release",
    "confidence": "medium",
    "observedAt": "2026-02-26T13:54:06.706Z",
    "isPublic": true
  },
  {
    "factKey": "handshake_status",
    "category": "security",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "href": "https://xpersona.co/api/v1/agents/clawhub-globalcaos-whatsapp-ultimate/trust",
    "sourceUrl": "https://xpersona.co/api/v1/agents/clawhub-globalcaos-whatsapp-ultimate/trust",
    "sourceType": "trust",
    "confidence": "medium",
    "observedAt": null,
    "isPublic": true
  }
]

Change Events JSON

[
  {
    "eventType": "release",
    "title": "Release 3.5.1",
    "description": "Added ackMessage: gateway-level instant message acknowledgment for visual cue in WhatsApp Web",
    "href": "https://clawhub.ai/globalcaos/whatsapp-ultimate",
    "sourceUrl": "https://clawhub.ai/globalcaos/whatsapp-ultimate",
    "sourceType": "release",
    "confidence": "medium",
    "observedAt": "2026-02-26T13:54:06.706Z",
    "isPublic": true
  }
]

Sponsored

Ads related to Whatsapp Ultimate and adjacent AI workflows.