AI-powered WhatsApp group message summarizer built on top of the WhatsApp MCP server.
Windows Users: Please see WINDOWS_SETUP.md for detailed Windows-specific setup instructions.
whatsummary/
├── whatsapp-mcp/ # WhatsApp MCP server (submodule - DO NOT MODIFY)
├── apps/
│ └── web/ # Next.js 14 application
└── packages/
└── database/ # Database schema and types
- Node.js 18+ and npm
- Python 3.8+ (for the API server)
- Go 1.20+ (for the WhatsApp bridge)
- Supabase account and project
- Anthropic API key (for Claude Sonnet 4)
cd whatsapp-mcp
pip install -r requirements-api.txt
pip install -e whatsapp-mcp-servercd whatsapp-mcp
python api-server.pyThis starts the database access API on port 3001.
cd whatsapp-mcp/whatsapp-bridge
go run main.goOn first run, scan the QR code with your WhatsApp mobile app to authenticate.
- Create a new Supabase project at https://supabase.com
- Run the SQL schema from
packages/database/schema.sqlin the Supabase SQL Editor - Copy your project URL and keys
cd apps/web
cp .env.example .env.localEdit .env.local with your actual values:
NEXT_PUBLIC_SUPABASE_URL=your-project-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
WHATSAPP_BRIDGE_URL=http://localhost:8080
WHATSAPP_API_SERVER_URL=http://localhost:3001
ANTHROPIC_API_KEY=sk-ant-...
NEXT_PUBLIC_APP_URL=http://localhost:3000cd apps/web
npm install
npm run devThe application will be available at http://localhost:3000
- ✅ Next.js 14 with App Router and TypeScript
- ✅ Tailwind CSS styling
- ✅ Supabase authentication (email/password)
- ✅ MCP client library for WhatsApp data access
- ✅ Dashboard layout with sidebar navigation
- ✅ Groups list page showing all WhatsApp groups
- ✅ Message count tracking (24h window)
- ✅ Authentication flow (login/signup)
- User Authentication: Sign up and log in with email/password
- View Groups: See all your WhatsApp groups with message counts
- Basic Dashboard: Overview page with stats (placeholders)
- Responsive Layout: Mobile-friendly sidebar and navigation
- Claude Summarizer integration
- Summary generation API
- Group detail page with summary timeline
- Summary cards with expandable sections
- Action items extraction
- Settings page for digest configuration
- Daily digest generator
- Self-messaging via WhatsApp
- Scheduled digest delivery
- Per-group digest preferences
- Real-time updates with Supabase Realtime
- On-demand "Catch me up" feature
- Enhanced mobile UI
- PWA support
The application uses a three-tier architecture to avoid native module compilation issues:
┌──────────────────┐
│ Next.js App │ Port 3000 - Frontend & API orchestration
│ (apps/web) │
└────────┬─────────┘
│
├─── HTTP ───> Python API Server (port 3001)
│ └─ Database access via whatsapp.py
│ └─ Reads messages.db
│
└─── HTTP ───> Go WhatsApp Bridge (port 8080)
└─ WhatsApp connection & messaging
└─ Stores messages in SQLite
- Database: WhatsApp messages stored in SQLite by the Go bridge at
./whatsapp-mcp/whatsapp-bridge/store/messages.db - Data Access: HTTP calls to Python API server (no native SQLite bindings in Node.js)
- User Data: Stored in Supabase (profiles, settings, summaries)
- AI Processing: Claude Sonnet 4 via Anthropic API
- Messaging: REST calls to Go bridge for sending messages
- Ensure Python API server is running:
cd whatsapp-mcp && python api-server.py(port 3001) - Ensure WhatsApp Go bridge is running:
cd whatsapp-mcp/whatsapp-bridge && go run main.go(port 8080) - Check that messages.db exists at
whatsapp-mcp/whatsapp-bridge/store/messages.db - Verify environment variable
WHATSAPP_API_SERVER_URL=http://localhost:3001is set
- Verify Supabase credentials in
.env.local - Check that the database schema has been applied
- Ensure RLS policies are enabled
- Delete
node_modulesand.next:rm -rf node_modules .next - Reinstall:
npm install - Run:
npm run dev
# Start development server
cd apps/web
npm run dev
# Build for production
npm run build
# Start production server
npm startISC