# Send GOWA - WhatsApp Automation to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "gowa",
    "name": "GOWA - WhatsApp Automation",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/aldinokemal/gowa",
    "canonicalUrl": "https://clawhub.ai/aldinokemal/gowa",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/gowa",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=gowa",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "references/api-endpoints.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "gowa",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-03T13:02:24.842Z",
      "expiresAt": "2026-05-10T13:02:24.842Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=gowa",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=gowa",
        "contentDisposition": "attachment; filename=\"gowa-1.4.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "gowa"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/gowa"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/gowa",
    "downloadUrl": "https://openagent3.xyz/downloads/gowa",
    "agentUrl": "https://openagent3.xyz/skills/gowa/agent",
    "manifestUrl": "https://openagent3.xyz/skills/gowa/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/gowa/agent.md"
  }
}
```
## Documentation

### GOWA - WhatsApp Automation via REST API

Interact with WhatsApp through GOWA (Go WhatsApp Web Multi-Device) REST API for personal automation tasks.

### Installation & Setup

GOWA is available at: https://github.com/aldinokemal/go-whatsapp-web-multidevice

### Download

Go to the releases page and download the zip matching your OS and architecture.

Release files are named: whatsapp_VERSION_OS_ARCH.zip

Available platforms: linux (amd64/arm64/386), darwin (amd64/arm64), windows (amd64/386)

### Run REST Server

./gowa rest

The server starts on http://localhost:3000 by default.

### Login (First Time)

Open http://localhost:3000 in a browser, scan the QR code with WhatsApp on your phone to link the device.

### Production Setup

GOWA runs in REST mode:

Base URL: http://localhost:3000
GOWA auto-connects to the device stored in the database — no X-Device-Id header needed for single-device setups.

⚠️ Important: Use REST API (port 3000) only. Do NOT use MCP mode - all schedulers and automation depend on REST.

### Ghost Mention (mention all without @)

curl -X POST http://localhost:3000/send/message \\
  -H "Content-Type: application/json" \\
  -d '{
    "phone": "120363040656010581@g.us",
    "message": "Important announcement",
    "mentions": ["@everyone"]
  }'

### Send Text Message

curl -X POST http://localhost:3000/send/message \\
  -H "Content-Type: application/json" \\
  -d '{"phone": "628123456789", "message": "Hello!"}'

### Send Image

curl -X POST http://localhost:3000/send/image \\
  -F "phone=628xxx" \\
  -F "caption=Photo" \\
  -F "image=@/path/to/image.jpg"

### Check Status

curl http://localhost:3000/app/status | jq .

### Messages

Send Text with Ghost Mention:

Endpoint: POST /send/message
Body: {"phone": "group@g.us", "message": "text", "mentions": ["@everyone"]}
@everyone mentions all members without showing @ in text ✅

Reply to Message:

Body: {"phone": "...", "message": "...", "reply_message_id": "msg_id"}

Disappearing Message:

Body: {"phone": "...", "message": "...", "duration": 86400} (seconds)

Forward Message:

Body: {"phone": "...", "message": "...", "is_forwarded": true}

### Media

Send Image:

Endpoint: POST /send/image
Form data: phone, caption, image (file), compress (bool)

Send Document:

Endpoint: POST /send/file
Form data: phone, caption, file

Send Video:

Endpoint: POST /send/video
Form data: phone, caption, video, compress (bool)

Send Audio:

Endpoint: POST /send/audio
Form data: phone, audio

Send Sticker:

Endpoint: POST /send/sticker
Form data: phone, sticker (auto-converts to WebP)

Send Contact:

Endpoint: POST /send/contact
Body: {"phone": "...", "contact_name": "...", "contact_phone": "..."}

Send Location:

Endpoint: POST /send/location
Body: {"phone": "...", "latitude": 0.0, "longitude": 0.0}

Send Link:

Endpoint: POST /send/link
Body: {"phone": "...", "link": "...", "caption": "..."}

Send Poll:

Endpoint: POST /send/poll
Body: {"phone": "...", "question": "...", "options": ["A", "B"]}

### Connection & Status

Get Status:

GET /app/status
Returns: {"is_connected": true, "is_logged_in": true}

Reconnect:

GET /app/reconnect

Logout:

GET /app/logout

Get QR Code (for login):

GET /app/login
Returns: PNG image (QR code to scan)

Login with Pairing Code:

GET /app/login-with-code?phone=628xxx

### Groups

List My Groups:

GET /user/my/groups
Returns: {results: {data: [...]}} - groups array is at .results.data
Example: curl ... | jq '.results.data[] | {Name, JID, Members: .Participants | length}'
Max 500 groups (WhatsApp protocol limit)

Get Group Info:

GET /group/info?group_jid=xxx@g.us

Create Group:

POST /group
Body: {"name": "Group Name", "participants": ["628xxx@s.whatsapp.net"]}

Get Group Participants:

GET /group/participants?group_jid=xxx@g.us

Add Participant:

POST /group/participants
Body: {"group_jid": "...", "participants": ["628xxx@s.whatsapp.net"]}

Remove Participant:

POST /group/participants/remove
Body: {"group_jid": "...", "participants": ["628xxx@s.whatsapp.net"]}

Promote to Admin:

POST /group/participants/promote
Body: {"group_jid": "...", "participants": ["628xxx@s.whatsapp.net"]}

Demote from Admin:

POST /group/participants/demote
Body: {"group_jid": "...", "participants": ["628xxx@s.whatsapp.net"]}

Leave Group:

POST /group/leave
Body: {"group_jid": "..."}

Set Group Photo:

POST /group/photo
Form data: group_jid, photo

Set Group Name:

POST /group/name
Body: {"group_jid": "...", "name": "..."}

Set Group Description:

POST /group/topic
Body: {"group_jid": "...", "topic": "..."}

Get Invite Link:

GET /group/invite-link?group_jid=xxx@g.us

Join via Link:

POST /group/join-with-link
Body: {"link": "https://chat.whatsapp.com/..."}

### Contacts & Chats

List Contacts:

GET /user/my/contacts

Get Chats:

GET /chats

Get User Info:

GET /user/info?phone=628xxx

Check if User Exists:

GET /user/check?phone=628xxx

### Message Operations

Revoke/Delete Message:

POST /message/{message_id}/revoke

React to Message:

POST /message/{message_id}/reaction
Body: {"emoji": "👍"}

Edit Message:

POST /message/{message_id}/update
Body: {"message": "edited text"}

Mark as Read:

POST /message/{message_id}/read

Star Message:

POST /message/{message_id}/star

Download Media:

GET /message/{message_id}/download

### Phone Number Format

User JID: 628123456789@s.whatsapp.net
Group JID: 120363040656010581@g.us
Phone only: 628123456789 (without +)

### Ghost Mention Feature

How it works:

Use "mentions": ["@everyone"] in /send/message
All group members get notification
No @ symbol shown in message text (true ghost mention)
Tested and confirmed working ✅

Example for schedulers:

curl -s -X POST http://localhost:3000/send/message \\
  -H 'Content-Type: application/json' \\
  -d '{"phone": "120363040656010581@g.us", "message": "Reminder text", "mentions": ["@everyone"]}' | jq .

### API Reference

Full OpenAPI 3.0 spec available at:

OpenAPI: https://raw.githubusercontent.com/aldinokemal/go-whatsapp-web-multidevice/refs/heads/main/docs/openapi.yaml
GitHub: https://github.com/aldinokemal/go-whatsapp-web-multidevice

### Notes

Auto-compresses images and videos before sending
Auto-converts images to WebP for stickers
Max 500 groups can be retrieved (WhatsApp protocol limit)
All media files can be sent as file upload or URL
Supports disappearing messages with custom duration
Multi-device support available via X-Device-Id header when running multiple devices
Built by @aldinokemal: https://github.com/aldinokemal/go-whatsapp-web-multidevice
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: aldinokemal
- Version: 1.4.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-03T13:02:24.842Z
- Expires at: 2026-05-10T13:02:24.842Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/gowa)
- [Send to Agent page](https://openagent3.xyz/skills/gowa/agent)
- [JSON manifest](https://openagent3.xyz/skills/gowa/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/gowa/agent.md)
- [Download page](https://openagent3.xyz/downloads/gowa)