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.
- License 许可
- MIT
- 最近更新
- 2026-04-05
- Stars
- ★ 7
- Forks
- 1
01 前言 Front Matter
- name
- google-messages
- metadata
- { "openclaw": { "emoji": "?", "requires": { "env": [ "SMS_NOTIFICATION_TARGET", "SMS_NOTIFICATION_CHANNEL" ], "bins": [ "node" ], "tools": [ "browser" ] } } }
- description
- 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.
02 资源文件 8
- 参考文档_meta.json300 B
- 参考文档package.json593 B
- 参考文档README.md3.8 KB
- 参考文档references/observer-injection.md3.9 KB
- 参考文档references/snippets.md2.4 KB
- 脚本scripts/start-webhook.sh1.0 KB
- 脚本sms-observer.js6.8 KB
- 脚本sms-webhook-server.js4.5 KB
03 SKILL.md 正文
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
04 同仓库更多 Skills
zyfai
Earn yield on any Ethereum wallet on Base, Arbitrum, and Plasma. Use when a user wants passive DeFi yield on their funds. Deploys a non-custodial subaccount (Safe) linked to their EOA, enables automated yield optimization, and lets them deposit/withdraw anytime.
zerion-api
暂无简介
zerion-api-skill
暂无简介
zerion-api-mcp
暂无简介
yahoo-finance-forex
Fetches real-time FOREX news and market data from Yahoo Finance for major currency pairs (EUR/USD, GBP/USD, USD/JPY, etc.). Analyzes sentiment and provides trading context.
yahoo-finance
This skill should be used when the user asks to "get stock prices", "check stock quotes", "look up earnings", "get financial data", "find trending stocks", or needs stock market data from Yahoo Finance.