💬 Google Messages Openclaw Skill OpenClaw Skill - ClawHub
Do you want your AI agent to automate Google Messages Openclaw Skill workflows? This free skill from ClawHub helps with clawdbot tools tasks without building custom tools from scratch.
What this skill does
Send and receive SMS/RCS via Google Messages web interface (messages.google.com). Use when asked to "send a text", "check texts", "SMS", "text message", "Google Messages", or forward incoming texts to other channels.
Install
npx clawhub@latest install google-messages-openclaw-skillFull SKILL.md
Open original| name | description |
|---|---|
| google-messages | Send and receive SMS/RCS via Google Messages web interface (messages.google.com). Use when asked to "send a text", "check texts", "SMS", "text message", "Google Messages", or forward incoming texts to other channels. |
Google Messages Browser Skill
Automate SMS/RCS messaging via messages.google.com using the browser tool.
Overview
Google Messages for Web allows you to send/receive texts from your Android phone via browser. This skill automates that interface.
Requirements:
- Android phone with Google Messages app
- Phone and computer on same network (for initial QR pairing)
- Browser profile with persistent session (use
openclawor your preferred profile)
Note: Replace profile=openclaw in examples with your preferred browser profile if different.
Quick Reference
| Action | Command |
|---|---|
| Open pairing page | browser action=open profile=openclaw targetUrl="https://messages.google.com/web/authentication" |
| Check session | browser action=snapshot profile=openclaw — look for conversation list vs QR code |
| Take screenshot | browser action=screenshot profile=openclaw |
Initial Setup (QR Pairing)
First-time setup requires scanning a QR code:
-
Open Google Messages Web
browser action=open profile=openclaw targetUrl="https://messages.google.com/web/authentication" -
Screenshot the QR code and share with user
browser action=screenshot profile=openclaw -
User scans with phone:
- Open Google Messages app on Android
- Tap ⋮ menu → "Device pairing" → "QR code scanner"
- Scan the QR code
-
Verify connection — snapshot should show conversation list, not QR code
Important: Enable "Remember this computer" to persist the session.
Sending Messages
-
Navigate to conversations
browser action=navigate profile=openclaw targetUrl="https://messages.google.com/web/conversations" -
Take snapshot and find conversation
browser action=snapshot profile=openclawLook for the contact in the conversation list, note the
ref. -
Click conversation
browser action=act profile=openclaw request={"kind": "click", "ref": "<ref>"} -
Type message (find textarea ref from snapshot)
browser action=act profile=openclaw request={"kind": "type", "ref": "<input_ref>", "text": "Your message"} -
Click send (find send button ref)
browser action=act profile=openclaw request={"kind": "click", "ref": "<send_ref>"}
Receiving Messages (Real-time Notifications)
This skill includes a webhook system for real-time incoming SMS notifications.
Components
- sms-webhook-server.js — receives notifications, forwards to OpenClaw channels
- sms-observer.js — browser script that watches for new messages
Setup
-
Set environment variables:
export SMS_NOTIFICATION_TARGET="telegram:YOUR_CHAT_ID" export SMS_NOTIFICATION_CHANNEL="telegram" -
Start webhook server:
node <skill>/sms-webhook-server.js -
Inject observer into browser (see
references/observer-injection.md)
Systemd Service (Persistent)
cp <skill>/systemd/google-messages-webhook.service ~/.config/systemd/user/
# Edit service file: set SMS_NOTIFICATION_TARGET in Environment=
systemctl --user daemon-reload
systemctl --user enable --now google-messages-webhook
Reading Messages
See references/snippets.md for JavaScript snippets to:
- Get recent conversations
- Get messages in current conversation
- Check session status
Troubleshooting
| Problem | Solution |
|---|---|
| QR code shown | Session expired, re-pair |
| Elements not found | Google updated UI, check snapshot for new selectors |
| Send button disabled | Message input empty or phone disconnected |
| Observer not detecting | Check browser console for [SMS Observer] logs |
| Webhook not receiving | Verify server running: curl http://127.0.0.1:19888/health |
Selectors Reference
Google Messages uses Angular components. These may change with updates.
| Element | Selector |
|---|---|
| Conversation list | mws-conversations-list |
| Conversation item | mws-conversation-list-item |
| Message input | textarea[aria-label*="message"] |
| Send button | button[aria-label*="Send"] |
| QR code | mw-qr-code |
Limitations
- Phone must be online (messages sync through phone)
- Browser tab must stay open for notifications
- Session expires after ~14 days of inactivity
- Observer lost on page reload (re-inject needed)
Security
- Webhook listens on localhost only (127.0.0.1)
- No credentials stored (session in browser cookies)
- QR pairing links to your phone — treat as sensitive
License
Apache-2.0