← 返回 Skills 市场
aldinokemal

GOWA - WhatsApp Automation

作者 aldinokemal · GitHub ↗ · v1.4.0
cross-platform ✓ 安全检测通过
1361
总下载
2
收藏
2
当前安装
8
版本数
在 OpenClaw 中安装
/install gowa
功能描述
Interact with WhatsApp via GOWA (Go WhatsApp Web Multi-Device) REST API for personal automation. Supports sending messages with ghost mentions (@everyone), images, documents, group management, and more. Always use REST mode (http://localhost:3000) for production.
使用说明 (SKILL.md)

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.

Quick Examples

Ghost Mention (mention all without @)

curl -X POST http://localhost:3000/send/message \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "[email protected]",
    "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 .

Complete API Operations

Messages

Send Text with Ghost Mention:

  • Endpoint: POST /send/message
  • Body: {"phone": "[email protected]", "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:

Create Group:

Get Group Participants:

Add Participant:

  • POST /group/participants
  • Body: {"group_jid": "...", "participants": ["[email protected]"]}

Remove Participant:

  • POST /group/participants/remove
  • Body: {"group_jid": "...", "participants": ["[email protected]"]}

Promote to Admin:

  • POST /group/participants/promote
  • Body: {"group_jid": "...", "participants": ["[email protected]"]}

Demote from Admin:

  • POST /group/participants/demote
  • Body: {"group_jid": "...", "participants": ["[email protected]"]}

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:

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

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": "[email protected]", "message": "Reminder text", "mentions": ["@everyone"]}' | jq .

API Reference

Full OpenAPI 3.0 spec available at:

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
安全使用建议
This skill is coherent: it expects you to run a local GOWA REST server and then uses localhost:3000 endpoints to control your WhatsApp account. Before installing or using it, consider: 1) Running the GOWA server locally and binding it to localhost only; enable Basic Auth if you plan to expose the server beyond your machine. 2) Scanning the GOWA GitHub releases yourself (verify checksums/signatures where available) rather than downloading from untrusted mirrors. 3) Remember that linking the server requires scanning a WhatsApp QR code — that effectively gives the server (and any automated agent calling it) full control of the linked WhatsApp account, including sending messages, exporting participants, and changing group settings. 4) If you allow the agent to invoke the skill autonomously, it could send messages without separate consent — restrict invocation or require confirmation if that matters. If you want extra assurance, review the GOWA source code or run it in an isolated environment before granting it access to your primary account.
功能分析
Type: OpenClaw Skill Name: gowa Version: 1.4.0 The skill bundle is designed to interact with a locally running WhatsApp REST API (GOWA). All `curl` commands and network interactions specified in `SKILL.md` are directed to `http://localhost:3000`. File access is limited to sending local files as media, which is a core function of the stated purpose. While the skill instructs the user to download and run a third-party binary from GitHub, this is a transparent setup step, and the skill itself contains no evidence of intentional harmful behavior, data exfiltration, persistence mechanisms, or prompt injection attempts against the agent.
能力评估
Purpose & Capability
Name and description (GOWA WhatsApp automation) match the SKILL.md and references: the instructions target a local GOWA REST server (http://localhost:3000) and expose endpoints for messaging, media, groups, and device management. Nothing requested (no env vars, no external credentials) is unrelated to WhatsApp automation.
Instruction Scope
Runtime instructions confine actions to calling a local REST server and uploading local media files when needed. The SKILL.md does not instruct reading unrelated system files, exfiltrating data, or contacting external endpoints beyond the documented API. Note: sending media requires access to local file paths and operations that control your WhatsApp account (sending messages, exporting participants) — these are consistent with the stated purpose but are powerful actions on your account.
Install Mechanism
This is an instruction-only skill with no automated install script. Installation guidance points to GitHub releases (official project repo). No downloads or extract operations are performed by the skill itself, which reduces installation risk; the user is expected to download/run the server manually.
Credentials
The skill declares no required environment variables or credentials. The reference notes optional Basic Auth for the GOWA server (user-configured) but the skill does not demand secrets. The lack of unrelated credential requests is proportionate to the stated functionality.
Persistence & Privilege
always:false and no special privileges requested. The skill does not request persistent platform-wide presence or modify other skills. Note: autonomous model invocation is allowed by default on the platform — this would let the agent call the local REST endpoints without additional user prompts if the agent chooses to do so; that is a platform behavior, not specific to this skill.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install gowa
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /gowa 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.4.0
Security: Remove gowa_helper.py script (file exfiltration risk), remove wget/systemd examples. Skill is now pure API documentation with curl examples only.
v1.3.0
Remove hardcoded X-Device-Id header from all examples. GOWA auto-connects to the stored device in single-device setups.
v1.2.0
Re-publish: Installation guide with GitHub releases download, systemd service setup, REST API docs.
v1.1.2
Fix download example: use v8.2.0 which has actual binary assets, add note that not all releases include binaries.
v1.1.1
Fix download instructions: correct release asset naming (whatsapp_VERSION_OS_ARCH.zip) and list all available platforms.
v1.1.0
Add installation & setup instructions: download from GitHub releases, run REST server, and systemd service setup.
v1.0.1
Fixed API reference to use public GitHub URL instead of local path
v1.0.0
Initial release: WhatsApp automation via REST API with ghost mention support (@everyone), media sending, group management, and more. Built on go-whatsapp-web-multidevice.
元数据
Slug gowa
版本 1.4.0
许可证
累计安装 2
当前安装数 2
历史版本数 8
常见问题

GOWA - WhatsApp Automation 是什么?

Interact with WhatsApp via GOWA (Go WhatsApp Web Multi-Device) REST API for personal automation. Supports sending messages with ghost mentions (@everyone), images, documents, group management, and more. Always use REST mode (http://localhost:3000) for production. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 1361 次。

如何安装 GOWA - WhatsApp Automation?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install gowa」即可一键安装,无需额外配置。

GOWA - WhatsApp Automation 是免费的吗?

是的,GOWA - WhatsApp Automation 完全免费(开源免费),可自由下载、安装和使用。

GOWA - WhatsApp Automation 支持哪些平台?

GOWA - WhatsApp Automation 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 GOWA - WhatsApp Automation?

由 aldinokemal(@aldinokemal)开发并维护,当前版本 v1.4.0。

💬 留言讨论