This demo requires browser-use v0.7.7+.
Features
- Agent logs into WhatsApp Web automatically
- Parses natural language scheduling instructions
- Composes personalized messages using AI
- Schedules messages for future delivery or sends immediately
- Persistent session (no repeated QR scanning)
Setup
Make sure the newest version of browser-use is installed:
pip install -U browser-use
export GOOGLE_API_KEY='your-gemini-api-key-here'
git clone https://github.com/browser-use/browser-use.git
cd browser-use/examples/apps/msg-use
Initial Login
First-time setup requires QR code scanning:
- Scan QR code when browser opens
- Session will be saved for future use
Normal Usage
- Edit your schedule in messages.txt:
- Send "Hi" to Magnus on the 13.06 at 18:15
- Tell hinge date (Camila) at 20:00 that I miss her
- Send happy birthday message to sister on the 15.06
- Remind mom to pick up the car next tuesday
- Test mode - See what will be sent:
python scheduler.py --test
- Run scheduler:
python scheduler.py
# Debug Mode - See the browser in action
python scheduler.py --debug
# Auto Mode - Respond to unread messages every ~30 minutes
python scheduler.py --auto
Programmatic Usage
import asyncio
from scheduler import schedule_messages
async def main():
    messages = [
        "Send hello to John at 15:30",
        "Remind Sarah about meeting tomorrow at 9am"
    ]
    await schedule_messages(messages, debug=False)
asyncio.run(main())
Example Output
The scheduler processes natural language and outputs structured results:
[
  {
    "contact": "Magnus",
    "original_message": "Hi",
    "composed_message": "Hi",
    "scheduled_time": "2025-06-13 18:15"
  },
  {
    "contact": "Camila", 
    "original_message": "I miss her",
    "composed_message": "I miss you ❤️",
    "scheduled_time": "2025-06-14 20:00"
  },
  {
    "contact": "sister",
    "original_message": "happy birthday message", 
    "composed_message": "Happy birthday! 🎉 Wishing you an amazing day, sis! Hope you have the best birthday ever! ❤️🎂🎈",
    "scheduled_time": "2025-06-15 09:00"
  }
]
Source Code
Full implementation: https://github.com/browser-use/browser-use/tree/main/examples/apps/msg-use