{
  "schemaVersion": "1.0",
  "item": {
    "slug": "google-messages-openclaw-skill",
    "name": "Google Messages",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/kesslerio/google-messages-openclaw-skill",
    "canonicalUrl": "https://clawhub.ai/kesslerio/google-messages-openclaw-skill",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/google-messages-openclaw-skill",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=google-messages-openclaw-skill",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "package.json",
      "references/observer-injection.md",
      "references/snippets.md",
      "scripts/start-webhook.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/google-messages-openclaw-skill"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/google-messages-openclaw-skill",
    "agentPageUrl": "https://openagent3.xyz/skills/google-messages-openclaw-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/google-messages-openclaw-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/google-messages-openclaw-skill/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Google Messages Browser Skill",
        "body": "Automate SMS/RCS messaging via messages.google.com using the browser tool."
      },
      {
        "title": "Overview",
        "body": "Google Messages for Web allows you to send/receive texts from your Android phone via browser. This skill automates that interface.\n\nRequirements:\n\nAndroid phone with Google Messages app\nPhone and computer on same network (for initial QR pairing)\nBrowser profile with persistent session (use openclaw or your preferred profile)\n\nNote: Replace profile=openclaw in examples with your preferred browser profile if different."
      },
      {
        "title": "Quick Reference",
        "body": "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"
      },
      {
        "title": "Initial Setup (QR Pairing)",
        "body": "First-time setup requires scanning a QR code:\n\nOpen Google Messages Web\nbrowser action=open profile=openclaw targetUrl=\"https://messages.google.com/web/authentication\"\n\n\n\nScreenshot the QR code and share with user\nbrowser action=screenshot profile=openclaw\n\n\n\nUser scans with phone:\n\nOpen Google Messages app on Android\nTap ⋮ menu → \"Device pairing\" → \"QR code scanner\"\nScan the QR code\n\n\n\nVerify connection — snapshot should show conversation list, not QR code\n\nImportant: Enable \"Remember this computer\" to persist the session."
      },
      {
        "title": "Sending Messages",
        "body": "Navigate to conversations\nbrowser action=navigate profile=openclaw targetUrl=\"https://messages.google.com/web/conversations\"\n\n\n\nTake snapshot and find conversation\nbrowser action=snapshot profile=openclaw\n\nLook for the contact in the conversation list, note the ref.\n\n\nClick conversation\nbrowser action=act profile=openclaw request={\"kind\": \"click\", \"ref\": \"<ref>\"}\n\n\n\nType message (find textarea ref from snapshot)\nbrowser action=act profile=openclaw request={\"kind\": \"type\", \"ref\": \"<input_ref>\", \"text\": \"Your message\"}\n\n\n\nClick send (find send button ref)\nbrowser action=act profile=openclaw request={\"kind\": \"click\", \"ref\": \"<send_ref>\"}"
      },
      {
        "title": "Receiving Messages (Real-time Notifications)",
        "body": "This skill includes a webhook system for real-time incoming SMS notifications."
      },
      {
        "title": "Components",
        "body": "sms-webhook-server.js — receives notifications, forwards to OpenClaw channels\nsms-observer.js — browser script that watches for new messages"
      },
      {
        "title": "Setup",
        "body": "Set environment variables:\nexport SMS_NOTIFICATION_TARGET=\"telegram:YOUR_CHAT_ID\"\nexport SMS_NOTIFICATION_CHANNEL=\"telegram\"\n\n\n\nStart webhook server:\nnode <skill>/sms-webhook-server.js\n\n\n\nInject observer into browser (see references/observer-injection.md)"
      },
      {
        "title": "Systemd Service (Persistent)",
        "body": "cp <skill>/systemd/google-messages-webhook.service ~/.config/systemd/user/\n# Edit service file: set SMS_NOTIFICATION_TARGET in Environment=\nsystemctl --user daemon-reload\nsystemctl --user enable --now google-messages-webhook"
      },
      {
        "title": "Reading Messages",
        "body": "See references/snippets.md for JavaScript snippets to:\n\nGet recent conversations\nGet messages in current conversation\nCheck session status"
      },
      {
        "title": "Troubleshooting",
        "body": "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"
      },
      {
        "title": "Selectors Reference",
        "body": "Google Messages uses Angular components. These may change with updates.\n\nElementSelectorConversation listmws-conversations-listConversation itemmws-conversation-list-itemMessage inputtextarea[aria-label*=\"message\"]Send buttonbutton[aria-label*=\"Send\"]QR codemw-qr-code"
      },
      {
        "title": "Limitations",
        "body": "Phone must be online (messages sync through phone)\nBrowser tab must stay open for notifications\nSession expires after ~14 days of inactivity\nObserver lost on page reload (re-inject needed)"
      },
      {
        "title": "Security",
        "body": "Webhook listens on localhost only (127.0.0.1)\nNo credentials stored (session in browser cookies)\nQR pairing links to your phone — treat as sensitive"
      },
      {
        "title": "License",
        "body": "Apache-2.0"
      }
    ],
    "body": "Google Messages Browser Skill\n\nAutomate SMS/RCS messaging via messages.google.com using the browser tool.\n\nOverview\n\nGoogle Messages for Web allows you to send/receive texts from your Android phone via browser. This skill automates that interface.\n\nRequirements:\n\nAndroid phone with Google Messages app\nPhone and computer on same network (for initial QR pairing)\nBrowser profile with persistent session (use openclaw or your preferred profile)\n\nNote: Replace profile=openclaw in examples with your preferred browser profile if different.\n\nQuick Reference\nAction\tCommand\nOpen pairing page\tbrowser action=open profile=openclaw targetUrl=\"https://messages.google.com/web/authentication\"\nCheck session\tbrowser action=snapshot profile=openclaw — look for conversation list vs QR code\nTake screenshot\tbrowser action=screenshot profile=openclaw\nInitial Setup (QR Pairing)\n\nFirst-time setup requires scanning a QR code:\n\nOpen Google Messages Web\n\nbrowser action=open profile=openclaw targetUrl=\"https://messages.google.com/web/authentication\"\n\n\nScreenshot the QR code and share with user\n\nbrowser action=screenshot profile=openclaw\n\n\nUser scans with phone:\n\nOpen Google Messages app on Android\nTap ⋮ menu → \"Device pairing\" → \"QR code scanner\"\nScan the QR code\n\nVerify connection — snapshot should show conversation list, not QR code\n\nImportant: Enable \"Remember this computer\" to persist the session.\n\nSending Messages\n\nNavigate to conversations\n\nbrowser action=navigate profile=openclaw targetUrl=\"https://messages.google.com/web/conversations\"\n\n\nTake snapshot and find conversation\n\nbrowser action=snapshot profile=openclaw\n\n\nLook for the contact in the conversation list, note the ref.\n\nClick conversation\n\nbrowser action=act profile=openclaw request={\"kind\": \"click\", \"ref\": \"<ref>\"}\n\n\nType message (find textarea ref from snapshot)\n\nbrowser action=act profile=openclaw request={\"kind\": \"type\", \"ref\": \"<input_ref>\", \"text\": \"Your message\"}\n\n\nClick send (find send button ref)\n\nbrowser action=act profile=openclaw request={\"kind\": \"click\", \"ref\": \"<send_ref>\"}\n\nReceiving Messages (Real-time Notifications)\n\nThis skill includes a webhook system for real-time incoming SMS notifications.\n\nComponents\nsms-webhook-server.js — receives notifications, forwards to OpenClaw channels\nsms-observer.js — browser script that watches for new messages\nSetup\n\nSet environment variables:\n\nexport SMS_NOTIFICATION_TARGET=\"telegram:YOUR_CHAT_ID\"\nexport SMS_NOTIFICATION_CHANNEL=\"telegram\"\n\n\nStart webhook server:\n\nnode <skill>/sms-webhook-server.js\n\n\nInject observer into browser (see references/observer-injection.md)\n\nSystemd Service (Persistent)\ncp <skill>/systemd/google-messages-webhook.service ~/.config/systemd/user/\n# Edit service file: set SMS_NOTIFICATION_TARGET in Environment=\nsystemctl --user daemon-reload\nsystemctl --user enable --now google-messages-webhook\n\nReading Messages\n\nSee references/snippets.md for JavaScript snippets to:\n\nGet recent conversations\nGet messages in current conversation\nCheck session status\nTroubleshooting\nProblem\tSolution\nQR code shown\tSession expired, re-pair\nElements not found\tGoogle updated UI, check snapshot for new selectors\nSend button disabled\tMessage input empty or phone disconnected\nObserver not detecting\tCheck browser console for [SMS Observer] logs\nWebhook not receiving\tVerify server running: curl http://127.0.0.1:19888/health\nSelectors Reference\n\nGoogle Messages uses Angular components. These may change with updates.\n\nElement\tSelector\nConversation list\tmws-conversations-list\nConversation item\tmws-conversation-list-item\nMessage input\ttextarea[aria-label*=\"message\"]\nSend button\tbutton[aria-label*=\"Send\"]\nQR code\tmw-qr-code\nLimitations\nPhone must be online (messages sync through phone)\nBrowser tab must stay open for notifications\nSession expires after ~14 days of inactivity\nObserver lost on page reload (re-inject needed)\nSecurity\nWebhook listens on localhost only (127.0.0.1)\nNo credentials stored (session in browser cookies)\nQR pairing links to your phone — treat as sensitive\nLicense\n\nApache-2.0"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/kesslerio/google-messages-openclaw-skill",
    "publisherUrl": "https://clawhub.ai/kesslerio/google-messages-openclaw-skill",
    "owner": "kesslerio",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/google-messages-openclaw-skill",
    "downloadUrl": "https://openagent3.xyz/downloads/google-messages-openclaw-skill",
    "agentUrl": "https://openagent3.xyz/skills/google-messages-openclaw-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/google-messages-openclaw-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/google-messages-openclaw-skill/agent.md"
  }
}