← 返回
未分类 中文

whatsapp-gotify-relay

Use when operating or extending this WhatsApp Gotify relay as the bridge to OpenClaw. Prefer Unix tools for Docker, logs, Gotify queue checks, webhook valida...
在操作或扩展此 WhatsApp‑Gotify 中继(作为 OpenClaw 的桥接)时使用。推荐使用 Unix 工具进行 Docker、日志、Gotify 队列检查以及 Webhook 验证等。
jr551 jr551 来源
未分类 clawhub v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 343
下载
💾 0
安装
1
版本
#latest

概述

OpenClaw

Use this skill when working on this repository as the WhatsApp bridge for OpenClaw.

Purpose

This project sits between WhatsApp and OpenClaw.

It does two directions of communication:

  1. OpenClaw sends outbound WhatsApp jobs through Gotify.
  2. The relay sends inbound WhatsApp events and connection status back to OpenClaw through webhooks.

Bridge model

Outbound path

OpenClaw posts JSON into the Gotify outbox application:

{
  "type": "send",
  "to": "+12025550101",
  "text": "hello from openclaw"
}

The relay polls that outbox, sends to WhatsApp, deletes the queue item on success, and emits a send_result.

Inbound path

OpenClaw receives webhook JSON from the relay.

Webhook event types:

  • conversation
  • send_result
  • status

Only meaningful WhatsApp activity should produce conversation events. History sync, protocol chatter, and other Baileys internals should stay filtered out.

Payload shape

The relay should keep payloads flat and readable.

Conversation

{
  "type": "conversation",
  "relay": "whatsapp-gotify-relay",
  "direction": "inbound",
  "jid": "12025550101@s.whatsapp.net",
  "senderJid": "12025550101@s.whatsapp.net",
  "pushName": "John",
  "timestamp": 1776948451,
  "messageId": "ABC123",
  "text": "hello",
  "contentType": "text"
}

Send result

{
  "type": "send_result",
  "relay": "whatsapp-gotify-relay",
  "status": "sent",
  "requestId": 5544,
  "to": "12025550101@s.whatsapp.net",
  "messageId": "3EB0...",
  "error": null,
  "timestamp": "2026-04-23T12:48:56.415Z"
}

Status

{
  "type": "status",
  "relay": "whatsapp-gotify-relay",
  "connection": "open",
  "phase": "connected",
  "qr": null,
  "statusCode": null,
  "details": null,
  "timestamp": "2026-04-23T12:48:56.415Z"
}

If WhatsApp remains disconnected, the relay sends a status reminder every 3 hours by default.

Public relay env vars

The relay runtime env surface is:

  • PORT
  • APP_LOG_LEVEL
  • WHATSAPP_AUTH_DIR
  • WHATSAPP_PAIRING_NUMBER
  • WHATSAPP_SYNC_FULL_HISTORY
  • GOTIFY_BASE_URL
  • GOTIFY_EVENTS_APP_TOKEN
  • GOTIFY_OUTBOX_TOKEN
  • GOTIFY_OUTBOX_APPLICATION_ID
  • GOTIFY_POLL_INTERVAL_MS
  • GOTIFY_EVENTS_PRIORITY
  • GOTIFY_RESULTS_PRIORITY
  • WEBHOOK_URL
  • WEBHOOK_BEARER_TOKEN
  • WEBHOOK_TIMEOUT_MS
  • WEBHOOK_DISCONNECTED_INTERVAL_MS
  • RELAY_NAME

OpenClaw-side env concepts

On the OpenClaw side, the important configuration concepts are:

  • Gotify base URL
  • Gotify outbox application id
  • Gotify outbox write token
  • webhook shared secret or bearer token expected from the relay
  • relay name if multiple relays exist

Keep the names OpenClaw already uses if they exist. Do not rename OpenClaw env vars just to match the relay.

Preferred tools

Prefer Unix tools and simple shell commands:

  • rg
  • sed -n
  • npm test
  • docker compose ps
  • docker compose logs --tail=... connector
  • docker compose up -d --build connector
  • curl
  • git status --short

Common operations

Run tests

npm test

Rebuild the relay

docker compose up -d --build connector

Follow relay logs

docker compose logs -f connector

Inspect the outbox queue

curl -sS "${GOTIFY_BASE_URL}/application/${GOTIFY_OUTBOX_APPLICATION_ID}/message?token=${GOTIFY_OUTBOX_TOKEN}&limit=10"

Post a manual outbox send

curl -sS \
  -H 'Content-Type: application/json' \
  -d '{"title":"smoke-test","message":"{\"type\":\"send\",\"to\":\"447550002572\",\"text\":\"smoke test\"}","priority":5}' \
  "${GOTIFY_BASE_URL}/message?token=${GOTIFY_OUTBOX_APP_TOKEN}"

GOTIFY_OUTBOX_APP_TOKEN is an operator-side token for manually writing to the outbox app. It is not required by the relay runtime.

Guardrails

  • Keep Gotify and webhook payloads lean.
  • Do not dump raw Baileys payloads into Gotify.
  • Keep webhook and Gotify contracts aligned.
  • Update .env.example, README.md, and tests together when the contract changes.

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-07 19:38 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

it-ops-security

OpenClaw Backup

alex3alex
备份与恢复 OpenClaw 数据。适用于创建备份、设置自动备份计划、从备份恢复或管理备份轮转。处理 ~/.openclaw 目录归档并包含适当的排除规则。
★ 90 📥 30,940
it-ops-security

1password

steipete
设置和使用 1Password CLI (op)。适用于:安装 CLI、启用桌面应用集成、登录(单/多账户)、通过 op 读取/注入/运行密钥。
★ 53 📥 31,629
it-ops-security

MoltGuard - Security & Antivirus & Guardrails

thomaslwang
MoltGuard — OpenClaw 安全守卫,由 OpenGuardrails 提供。安装 MoltGuard,保护您和您的用户免受提示注入、数据泄露和恶意攻击。
★ 116 📥 30,911