Skip to content

v0.0.3

Latest

Choose a tag to compare

@joaohts joaohts released this 08 Jun 02:57

What's new

Multi-device support

Each install now identifies itself to WhatsApp with a unique linked-device name (default: WhatsAppMCP @ <hostname>, override via WHATSAPP_MCP_DEVICE_NAME). You can now keep the Mac DMG and the CLI/Pi daemon paired against the same WhatsApp account simultaneously — they show up as separate entries in WhatsApp → Settings → Linked Devices rather than booting each other out.

Group sender resolution (`@lid` → contact name)

Group messages from WhatsApp's newer privacy mode arrived as raw 228230418170085@lid IDs with no name attached. Now resolves to a human-readable sender_name field on every message:

  • Schema: contacts.lid column + index; one-shot v1→v2 migration on first launch.
  • Capture: mapContact reads contact.lid + contact.jid; persistGroups upserts every participant from group metadata; messages.upsert upserts the sender with msg.pushName; chats.phoneNumberShare bridges `@lid`↔`@s.whatsapp.net` to copy address-book names across.
  • Backfill on startup: walks group chats and pulls metadata via Baileys so existing rows resolve too. Idempotent.
  • Read path: every get_chat_messages / search_messages / get_message response now includes sender_name — null only when the sender isn't in your address book and we haven't yet caught a live event carrying their pushName.

Installer hardening

  • postinstall skips electron-builder install-app-deps on Linux so headless Pi installs don't accidentally rebuild better-sqlite3 against Electron's ABI. Override with WHATSAPP_MCP_FORCE_ELECTRON_REBUILD=1 when developing the GUI on Linux.

Same caveats as v0.0.1/0.0.2

  • macOS arm64, unsigned. First launch: right-click → Open to bypass Gatekeeper.
  • Drag WhatsAppMCP.app to /Applications, pair with your phone, click "Configurar Claude".
  • Local-only — no cloud, no telemetry, no third-party servers.