Automate SMS/RCS messaging via messages.google.com using the browser tool.
Google Messages for Web allows you to send/receive texts from your Android phone via browser. This skill automates that interface.
Requirements:
openclaw or your preferred profile)Note: Replace profile=openclaw in examples with your preferred browser profile if different.
ActionCommandOpen pairing pagebrowser action=open profile=openclaw targetUrl="https://messages.google.com/web/authentication"Check sessionbrowser action=snapshot profile=openclaw — look for conversation list vs QR codeTake screenshotbrowser action=screenshot profile=openclaw
First-time setup requires scanning a QR code:
Open Google Messages Web text
browser action=open profile=openclaw targetUrl="https://messages.google.com/web/authentication"
Screenshot the QR code and share with user text
browser action=screenshot profile=openclaw
User scans with phone:
Verify connection — snapshot should show conversation list, not QR code
Important: Enable "Remember this computer" to persist the session.
Navigate to conversations text
browser action=navigate profile=openclaw targetUrl="https://messages.google.com/web/conversations"
Take snapshot and find conversation text
browser action=snapshot profile=openclaw
Look for the contact in the conversation list, note the ref.
Click conversation text
browser action=act profile=openclaw request={"kind": "click", "ref": "<ref>"}
Type message (find textarea ref from snapshot) text
browser action=act profile=openclaw request={"kind": "type", "ref": "<input_ref>", "text": "Your message"}
Click send (find send button ref) text
browser action=act profile=openclaw request={"kind": "click", "ref": "<send_ref>"}
This skill includes a webhook system for real-time incoming SMS notifications.
Set environment variables: bash
export SMS_NOTIFICATION_TARGET="telegram:YOUR_CHAT_ID"
export SMS_NOTIFICATION_CHANNEL="telegram"
Start webhook server: bash
node <skill>/sms-webhook-server.js
Inject observer into browser (see references/observer-injection.md)
bash
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
See references/snippets.md for JavaScript snippets to:
ProblemSolutionQR code shownSession expired, re-pairElements not foundGoogle updated UI, check snapshot for new selectorsSend button disabledMessage input empty or phone disconnectedObserver not detectingCheck browser console for [SMS Observer] logsWebhook not receivingVerify server running: curl http://127.0.0.1:19888/health
Google Messages uses Angular components. These may change with updates.
ElementSelectorConversation listmws-conversations-listConversation itemmws-conversation-list-itemMessage inputtextarea[aria-label*="message"]Send buttonbutton[aria-label*="Send"]QR codemw-qr-code
Apache-2.0