Skip to content

WhatsApp support: live sync via whatsmeow + backup import #136

@eddowding

Description

@eddowding

I'm interested in contributing WhatsApp support. I've read through the codebase and noticed the unified schema already accounts for WhatsApp (source_type, message_type, raw_format, phone numbers on participants, reactions table, etc.) — so the storage layer looks ready.

What I'd build:

Phase 1 — Live sync via whatsmeow:

  • New internal/whatsapp/ package using whatsmeow for the WhatsApp Web multi-device API
  • QR code authentication flow (similar to how add-account opens a browser for Gmail OAuth)
  • Session persistence so re-auth isn't needed on every sync
  • Live sync: pull message history, map to existing schema (conversations, participants by phone number, attachments, reactions)
  • CLI commands: add-account --whatsapp, sync dispatching by source type

Phase 2 — Backup import:

  • Import from WhatsApp's "Export Chat" .txt files (quick win, but lossy — no metadata/reactions)
  • Import from encrypted WhatsApp backups (Google Drive / local msgstore.db) if feasible — this is harder due to encryption key extraction

Questions before I start:

  • Does this align with your current priorities, or is there other work you'd want landed first?
  • Any preferences on whatsmeow vs other approaches?
  • For backup import — any preference on which format to prioritise (export .txt vs encrypted backup)?
  • Are there any architectural decisions or constraints I should know about for the sync pipeline?

Happy to start with a design doc or go straight to a draft PR — whatever works best for the project.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions