// the find
aldinokemal/go-whatsapp-web-multidevice
GOWA - WhatsApp REST API with support for UI, Multi Account, Webhooks, and MCP, and Chatwoot. Built with Golang for efficient memory use.
A Go-based REST API wrapper around the WhatsApp Web multi-device protocol, letting you send messages, manage groups, handle webhooks, and run as an MCP server for AI agent integration. Built on top of whatsmeow, it targets developers who need to automate WhatsApp without paying for the official Business API. Active project with 4k stars and a busy contributor base.
The multi-device support in v8 is genuinely useful — you can manage multiple WhatsApp accounts from a single server instance, each with its own webhook URL, which makes it viable for small SaaS products. The webhook system is thoughtfully designed: per-device URLs, HMAC signing, JID-level filtering, and event-type whitelisting mean you're not drowning in noise. The MCP server mode is a nice addition for AI agent pipelines — it exposes WhatsApp operations as typed tools via SSE, which integrates cleanly with Cursor and similar tools. Docker and pre-built ARM binaries mean deployment is straightforward on a Raspberry Pi or cheap VPS.
This is reverse-engineering WhatsApp's unofficial protocol via whatsmeow — your account can be banned with no warning, and WhatsApp has historically been aggressive about this. That risk is never mentioned in the README. The Chatwoot integration has accumulated a lot of configuration surface area (30+ env vars just for Chatwoot) and the direct PostgreSQL import path is a fragile dependency on Chatwoot's internal schema. Windows is explicitly not recommended and relies on WSL, so if that's your environment you're second-class. The SQLite default for session storage means you need to be careful about in-memory vs file config — losing session state means re-scanning QR codes, and that's buried in a table note rather than front-and-center.