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.
Installable skillMITBy kbarbel640-delUpdated Oct 27, 2026
INTENDED FOROpenClawInstall in a listed agent.
instructions.md
---
name: google-messages
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.
metadata: {"openclaw": {"emoji": "💬", "requires": {"tools": ["browser"], "bins": ["node"], "env": ["SMS_NOTIFICATION_TARGET", "SMS_NOTIFICATION_CHANNEL"]}}}
---
# 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 `openclaw` or 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:
1. **Open Google Messages Web**
```
browser action=open profile=openclaw targetUrl="https://messages.google.com/web/authentication"
```
2. **Screenshot the QR code** and share with user
```
browser action=screenshot profile=openclaw
```
3. **User scans with phone:**
- Open Google Messages app on Android
- Tap ⋮ menu → "Device pairing" → "QR code scanner"
- Scan the QR code
4. **Verify connection** — snapshot should show conversation list, not QR code
**Important:** Enable "Remember this computer" to persist the session.
---
## Sending Messages
1. **Navigate to conversations**
```
browser action=navigate profile=openclaw targetUrl="https://messages.google.com/web/conversations"
```
2. **Take snapshot and find conversation**
```
browser action=snapshot profile=openclaw
```
Look for the contact in the conversation list, note the `ref`.
3. **Click conversation**
```
browser action=act profile=openclaw request={"kind": "click", "ref": "<ref>"}
```
4. **Type message** (find textarea ref from snapshot)
```
browser action=act profile=openclaw request={"kind": "type", "ref": "<input_ref>", "text": "Your message"}
```
5. **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
1. **sms-webhook-server.js** — receives notifications, forwards to OpenClaw channels
2. **sms-observer.js** — browser script that watches for new messages
### Setup
1. **Set environment variables:**
```bash
export SMS_NOTIFICATION_TARGET="telegram:YOUR_CHAT_ID"
export SMS_NOTIFICATION_CHANNEL="telegram"
```
2. **Start webhook server:**
```bash
node <skill>/sms-webhook-server.js
```
3. **Inject observer into browser** (see `references/observer-injection.md`)
### Systemd Service (Persistent)
```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
```
---
## 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
---
name: google-messages
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.
metadata: {"openclaw": {"emoji": "💬", "requires": {"tools": ["browser"], "bins": ["node"], "env": ["SMS_NOTIFICATION_TARGET", "SMS_NOTIFICATION_CHANNEL"]}}}
---
# 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 `openclaw` or 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:
1. **Open Google Messages Web**
```
browser action=open profile=openclaw targetUrl="https://messages.google.com/web/authentication"
```
2. **Screenshot the QR code** and share with user
```
browser action=screenshot profile=openclaw
```
3. **User scans with phone:**
- Open Google Messages app on Android
- Tap ⋮ menu → "Device pairing" → "QR code scanner"
- Scan the QR code
4. **Verify connection** — snapshot should show conversation list, not QR code
**Important:** Enable "Remember this computer" to persist the session.
---
## Sending Messages
1. **Navigate to conversations**
```
browser action=navigate profile=openclaw targetUrl="https://messages.google.com/web/conversations"
```
2. **Take snapshot and find conversation**
```
browser action=snapshot profile=openclaw
```
Look for the contact in the conversation list, note the `ref`.
3. **Click conversation**
```
browser action=act profile=openclaw request={"kind": "click", "ref": "<ref>"}
```
4. **Type message** (find textarea ref from snapshot)
```
browser action=act profile=openclaw request={"kind": "type", "ref": "<input_ref>", "text": "Your message"}
```
5. **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
1. **sms-webhook-server.js** — receives notifications, forwards to OpenClaw channels
2. **sms-observer.js** — browser script that watches for new messages
### Setup
1. **Set environment variables:**
```bash
export SMS_NOTIFICATION_TARGET="telegram:YOUR_CHAT_ID"
export SMS_NOTIFICATION_CHANNEL="telegram"
```
2. **Start webhook server:**
```bash
node <skill>/sms-webhook-server.js
```
3. **Inject observer into browser** (see `references/observer-injection.md`)
### Systemd Service (Persistent)
```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
```
---
## 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
Platform guidance
Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Includes source scripts; review them before use. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.
When the user wants to understand, reduce, or recover from developer churn. Trigger phrases include "why developers leave," "churn rate," "win-back campaign," "at-risk users," "developer retention," "preventing churn," or "competitor switching."
ClaudeCodexCursorSales
jonathimer/devmarketing-skills contributors, via Agentic Awesome Skills
Uncover the functional, emotional and social jobs a customer hires a product to do: progress state, hiring trigger, alternatives, success criteria, JTBD map. Use when you need to understand why users buy, switch or churn, or to anchor positioning, messaging and onboarding in real jobs.
Hilft bei Anlagenliste Verstehen für Menschen mit Deutsch als Zweitsprache. Erklaert Juristendeutsch, klaert Risiko, Frist und naechste Handlung, und formuliert respektvoll in einfachem oder formalem Deutsch im Juristische Sprache Deutsch Als Zweitsprache.