openclaw 网盘下载
OpenClaw

技能详情(站内镜像,无评论)

首页 > 技能库 > 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.

通信与消息

许可证:MIT-0

MIT-0 ·免费使用、修改和重新分发。无需归因。

版本:v1.4.0

统计:⭐ 2 · 1.1k · 0 current installs · 0 all-time installs

2

安装量(当前) 0

🛡 VirusTotal :良性 · OpenClaw :良性

Package:aldinokemal/gowa

安全扫描(ClawHub)

  • VirusTotal :良性
  • OpenClaw :良性

OpenClaw 评估

The skill's instructions, requirements, and behavior are internally consistent with a local GOWA (WhatsApp REST) automation helper and do not request unrelated credentials or hidden installs.

目的

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.

说明范围

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 purp…

安装机制

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.

证书

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.

持久

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.

综合结论

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 …

安装(复制给龙虾 AI)

将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。

请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「GOWA - WhatsApp Automation」。简介:Interact with WhatsApp via GOWA (Go WhatsApp Web Multi-Device) REST API for per…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/aldinokemal/gowa/SKILL.md
(来源:yingzhi8.cn 技能库)

SKILL.md

打开原始 SKILL.md(GitHub raw)

---
name: gowa
description: 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.
user-invocable: true
command-dispatch: model
---

# 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](https://github.com/aldinokemal/go-whatsapp-web-multidevice/releases) 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

```bash
./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 @)
```bash
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
```bash
curl -X POST http://localhost:3000/send/message 
  -H "Content-Type: application/json" 
  -d '{"phone": "628123456789", "message": "Hello!"}'
```

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

### Check Status
```bash
curl http://localhost:3000/app/status | jq .
```

## Complete API Operations

### 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:**
```bash
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