Decisions

  • Pending: Email API choice (IMAP vs Gmail API)
  • Pending: WhatsApp integration method (Business API vs bridge)

User Tasks


Summary

Give Opus read/write access to email and WhatsApp for communication management.

Problem / Motivation

Managing communications manually is time-consuming. Opus could summarize, draft responses, and flag important messages.

Proposed Solution

API integrations for email (IMAP/Gmail API) and WhatsApp (WhatsApp Business API or bridge).

Implementation: Consider using Slack/Discord/email MCP servers for messaging integration.

Privacy-sensitive — needs careful permission design.


Open Questions

No open questions.


Phase Overview

PhaseDescriptionStatus
Phase 1Email Read Access
Phase 2Email Actions
Phase 3WhatsApp

Phase 1: Email Read Access —

Goal: Connect to email and surface summaries in daily briefings.

File / FeatureDetailsOwnerStatus
Email connectionConnect to email via IMAP or Gmail APIopus
Daily email summaryEmail summary in briefingopus

Phase 2: Email Actions —

Goal: Enable Opus to draft and manage email responses.

File / FeatureDetailsOwnerStatus
Draft responsesDraft email responses via Opusopus
Flag/categorizeFlag and categorize messagesopus

Phase 3: WhatsApp —

Goal: Integrate WhatsApp messaging into Opus.

Reference approach (proven implementation, see REBUILD_PROMPT):

  • whatsapp-web.js (Puppeteer) as bridge — no Business API needed
  • Separate wa-daemon process keeps a WhatsApp Web session alive
  • Outgoing messages queue in SQLite, daemon picks up and sends
  • Incoming messages trigger a notification
  • First run requires scanning a QR code in the terminal
  • Free — uses your existing WhatsApp account

Note: Command routing and batch decision parsing are defined in FR-022 (Phone Access) and should be reused for WhatsApp — not duplicated. The same routing layer that handles Telegram commands applies to WhatsApp messages.

File / FeatureDetailsOwnerStatus
Read accessRead access to WhatsApp messagesopus
Session mappingEach WhatsApp chat maps to a Claude Code session ID in SQLite. /newchat clears the mapping. See session-mapping-pattern.opus
Command routingReuse FR-022 command routing layer for WhatsApp messagesopus
Batch decision parsingReuse FR-022 batch decision parser for WhatsApp repliesopus
Response draftingDraft WhatsApp responsesopus
Notification forwardingForward notifications to Opusopus

Prerequisites / Gap Analysis

Requirements

RequirementDescription
REQ-1Daily briefing includes email summary
REQ-2Can draft an email response via Opus

Current State

ComponentStatusDetails
Email integrationNo API connection exists
WhatsApp integrationNo API connection exists

Gap (What’s missing?)

GapEffortBlocker?
Email API setupMedNo
WhatsApp API/bridgeHighNo
Privacy/permission designMedNo

Test

Manual tests

TestExpectedActualLast
Fetch email summaryReturns unread email count and subjectspending-
Draft email responseGenerates draft for user reviewpending-
Read WhatsApp messagesReturns recent messagespending-

AI-verified tests

ScenarioExpected behaviorVerification method

E2E tests

ScenarioAssertion

Integration tests

ComponentCoverage

Unit tests

ComponentTestsCoverage

History

DateEventDetails
2026-02-26CreatedCreated from brain dump
2026-02-27RenumberedFrom FR-062 to FR-023
2026-02-28RewrittenAligned to feature-request template
2026-03-04UpdatedReferenced FR-022 for command routing and batch decision parsing

References

  • MCP servers for Slack/Discord/email could simplify integration
  • ClaudeClaw Rebuild Prompt — WhatsApp bridge via whatsapp-web.js with message queue