skills$openclaw/google-messages
kesslerio6.7kā˜…

by kesslerio

google-messages – OpenClaw Skill

google-messages is an OpenClaw Skills integration for coding workflows. 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.

6.7k stars8.6k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026coding

Skill Snapshot

namegoogle-messages
descriptionSend 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. OpenClaw Skills integration.
ownerkesslerio
repositorykesslerio/google-messages-openclaw-skill
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @kesslerio/google-messages-openclaw-skill
last updatedFeb 7, 2026

Maintainer

kesslerio

kesslerio

Maintains google-messages in the OpenClaw Skills directory.

View GitHub profile
File Explorer
11 files
.
references
observer-injection.md
3.9 KB
snippets.md
2.4 KB
scripts
start-webhook.sh
1.0 KB
_meta.json
300 B
package.json
593 B
README.md
3.8 KB
SKILL.md
5.0 KB
sms-observer.js
6.8 KB
sms-webhook-server.js
4.5 KB
SKILL.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

ActionCommand
Open 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 code
Take screenshotbrowser 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:

    export SMS_NOTIFICATION_TARGET="telegram:YOUR_CHAT_ID"
    export SMS_NOTIFICATION_CHANNEL="telegram"
    
  2. Start webhook server:

    node <skill>/sms-webhook-server.js
    
  3. 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

ProblemSolution
QR code shownSession expired, re-pair
Elements not foundGoogle updated UI, check snapshot for new selectors
Send button disabledMessage input empty or phone disconnected
Observer not detectingCheck browser console for [SMS Observer] logs
Webhook not receivingVerify server running: curl http://127.0.0.1:19888/health

Selectors Reference

Google Messages uses Angular components. These may change with updates.

ElementSelector
Conversation listmws-conversations-list
Conversation itemmws-conversation-list-item
Message inputtextarea[aria-label*="message"]
Send buttonbutton[aria-label*="Send"]
QR codemw-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

README.md

Google Messages Skill for OpenClaw

Send and receive SMS/RCS messages via Google Messages web interface using browser automation.

Features

  • šŸ“¤ Send SMS — Compose and send text messages
  • šŸ“„ Receive notifications — Real-time alerts when new messages arrive
  • šŸ” Read conversations — Query recent messages and conversation history
  • šŸ”— OpenClaw integration — Forward incoming SMS to Telegram, WhatsApp, or other channels

Requirements

  • OpenClaw with browser automation
  • Android phone with Google Messages app
  • Node.js 18+

Quick Start

1. Install the skill

# Clone to your skills directory
git clone https://github.com/kesslerio/google-messages-openclaw-skill.git ~/.openclaw/skills/google-messages

2. Pair with your phone

Ask your OpenClaw agent:

"Open Google Messages and show me the QR code"

Or manually:

  1. Go to https://messages.google.com/web
  2. Open Google Messages on your phone
  3. Tap ā‹® → Device pairing → QR code scanner
  4. Scan the code

3. Enable notifications (optional)

Start the webhook server to receive incoming message alerts:

# Set your notification target
export SMS_NOTIFICATION_TARGET="telegram:YOUR_CHAT_ID"
export SMS_NOTIFICATION_CHANNEL="telegram"

# Start the server
node ~/.openclaw/skills/google-messages/sms-webhook-server.js

Then inject the observer into the browser tab. See references/observer-injection.md for details.

Usage

Sending messages

Ask your OpenClaw agent:

  • "Text John that I'm running late"
  • "Send an SMS to 555-1234 saying hello"
  • "Message Mom on Google Messages"

Checking messages

  • "Check my texts"
  • "Any new SMS messages?"
  • "What did John text me?"

Configuration

Environment Variables

VariableDescriptionDefault
SMS_WEBHOOK_PORTPort for webhook server19888
SMS_NOTIFICATION_TARGETOpenClaw target (e.g., telegram:123456)(none)
SMS_NOTIFICATION_CHANNELChannel typetelegram

Systemd Service

For persistent notifications, install as a user service:

cp systemd/google-messages-webhook.service ~/.config/systemd/user/
# Edit service file: uncomment and set Environment= lines
systemctl --user daemon-reload
systemctl --user enable --now google-messages-webhook

How It Works

  1. Browser automation — Uses OpenClaw's browser tool to control messages.google.com
  2. MutationObserver — Injects a script that watches the DOM for new messages
  3. Webhook — When new messages arrive, POSTs to a local server
  4. Forwarding — Webhook server uses openclaw message send to forward to your preferred channel

Files

google-messages-skill/
ā”œā”€ā”€ SKILL.md                    # OpenClaw skill definition
ā”œā”€ā”€ sms-webhook-server.js       # Webhook server for notifications
ā”œā”€ā”€ sms-observer.js             # Browser injection script (full version)
ā”œā”€ā”€ references/
│   ā”œā”€ā”€ snippets.md             # JavaScript helper snippets
│   └── observer-injection.md   # How to inject the observer
ā”œā”€ā”€ scripts/
│   └── start-webhook.sh        # Helper to start webhook
└── systemd/
    └── google-messages-webhook.service

Limitations

  • Phone must be online (messages sync through phone)
  • Browser tab must stay open for notifications
  • Session expires after ~14 days of inactivity
  • QR re-pairing needed after session expiry
  • Observer lost on page reload

Security

  • Webhook server listens only on localhost
  • No credentials stored (session in browser profile cookies)
  • Observer script runs only on messages.google.com

License

Apache-2.0

Contributing

Issues and PRs welcome at https://github.com/kesslerio/google-messages-openclaw-skill

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

- 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 ---

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

FAQ

How do I install google-messages?

Run openclaw add @kesslerio/google-messages-openclaw-skill in your terminal. This installs google-messages into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/kesslerio/google-messages-openclaw-skill. Review commits and README documentation before installing.