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 your Gemini API key, get it from: Google AI Studio
export GOOGLE_API_KEY='your-gemini-api-key-here'
Clone the repo and cd into the app folder
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