{
  "schemaVersion": "1.0",
  "item": {
    "slug": "claw-me-maybe",
    "name": "Claw Me Maybe - Beeper Desktop API & Multi-Platform Messaging",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/nickhamze/claw-me-maybe",
    "canonicalUrl": "https://clawhub.ai/nickhamze/claw-me-maybe",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/claw-me-maybe",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=claw-me-maybe",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "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. 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. 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-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.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/claw-me-maybe"
    },
    "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/claw-me-maybe",
    "agentPageUrl": "https://openagent3.xyz/skills/claw-me-maybe/agent",
    "manifestUrl": "https://openagent3.xyz/skills/claw-me-maybe/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/claw-me-maybe/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. 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. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Claw Me Maybe - Beeper Desktop API & Multi-Platform Messaging 📟",
        "body": "Your lobster just got a Beeper.\n\nFinally, your Clawdbot can reach you (and everyone else) across every chat platform. WhatsApp? Telegram? Signal? Discord? Slack? Instagram DMs? LinkedIn? iMessage? All of them. One skill. One claw.\n\nPowered by Beeper - the app that unifies all your chats."
      },
      {
        "title": "What Can Your Lobster Do With Beeper?",
        "body": "🔍 Search Everything - \"What did Sarah say about the project last week?\" Your lobster will dig through all your Beeper chats instantly.\n\n💬 Send Messages Anywhere - \"Tell Mom I'll be late\" - and it goes to WhatsApp. \"Message the team on Slack\" - done. No app switching.\n\n📊 Summarize Your Inbox - \"What did I miss?\" Get a digest of unread messages across all your Beeper networks.\n\n🔔 Set Reminders - \"Remind me to reply to this chat tomorrow\" - your lobster remembers so you don't have to.\n\n📎 Grab Attachments - Download files, images, and media from any Beeper conversation.\n\n😀 React to Messages - Add emoji reactions to any message across any Beeper network.\n\n✅ Mark as Read - Keep your Beeper inbox tidy by marking conversations as read."
      },
      {
        "title": "Supported Beeper Networks",
        "body": "Your Clawdbot can reach you on any platform Beeper supports:\n\nPlatformStatusWhatsApp✅ Full SupportTelegram✅ Full SupportSignal✅ Full SupportDiscord✅ Full SupportSlack✅ Full SupportInstagram DMs✅ Full SupportFacebook Messenger✅ Full SupportLinkedIn Messages✅ Full SupportX (Twitter) DMs✅ Full SupportGoogle Messages✅ Full SupportGoogle Chat✅ Full SupportiMessage✅ macOS only\n\nOne skill. Twelve platforms. Infinite possibilities."
      },
      {
        "title": "1. Get Beeper",
        "body": "Don't have Beeper yet? Download it free - it's the app that brings all your chats together."
      },
      {
        "title": "2. Enable the Beeper Desktop API",
        "body": "Open Beeper Desktop → Settings → Developers → Toggle \"Beeper Desktop API\" ON\n\nThat's it. Your lobster now has a direct line to all your chats."
      },
      {
        "title": "3. (Optional) Add Your Beeper Token",
        "body": "For smoother automation, grab an access token:\n\nBeeper Desktop → Settings → Developers\nClick \"Create Access Token\"\nAdd to ~/.clawdbot/clawdbot.json:\n\n{\n  \"skills\": {\n    \"entries\": {\n      \"claw-me-maybe\": {\n        \"enabled\": true,\n        \"env\": {\n          \"BEEPER_ACCESS_TOKEN\": \"your-token-here\"\n        }\n      }\n    }\n  }\n}\n\nNote: BEEPER_API_URL defaults to http://localhost:23373 - no need to set it unless you're running Beeper on a different port."
      },
      {
        "title": "Talk to Your Lobster",
        "body": "Once set up, just ask naturally:\n\n\"Show me my unread messages in Beeper\"\n\n\"Search my Beeper chats for messages about dinner plans\"\n\n\"Send a WhatsApp message to John saying I'm on my way\"\n\n\"What's the latest in my Signal group chat?\"\n\n\"Message the #general channel on Slack: standup in 5 minutes\"\n\n\"Find all messages from Lisa in the last week\"\n\n\"React with 👍 to that last message\"\n\n\"Mark my Discord chats as read\"\n\nYour lobster handles the rest through Beeper."
      },
      {
        "title": "The Technical Stuff",
        "body": "(For those who like to peek under the shell)"
      },
      {
        "title": "Beeper API Basics",
        "body": "Base URL: http://localhost:23373 (Beeper Desktop must be running)\n\n# Auth header (when using a token)\n-H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\""
      },
      {
        "title": "Accounts",
        "body": "List Your Beeper Accounts\n\nSee all connected platforms in your Beeper:\n\ncurl -s \"${BEEPER_API_URL}/v1/accounts\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n\nExample Response:\n\n[\n  {\n    \"id\": \"whatsapp-abc123\",\n    \"service\": \"whatsapp\",\n    \"displayName\": \"+1 555-123-4567\",\n    \"connected\": true\n  },\n  {\n    \"id\": \"telegram-xyz789\",\n    \"service\": \"telegram\",\n    \"displayName\": \"@myusername\",\n    \"connected\": true\n  },\n  {\n    \"id\": \"signal-def456\",\n    \"service\": \"signal\",\n    \"displayName\": \"+1 555-987-6543\",\n    \"connected\": true\n  }\n]"
      },
      {
        "title": "Chats",
        "body": "List All Beeper Chats\n\ncurl -s \"${BEEPER_API_URL}/v1/chats\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n\nExample Response:\n\n[\n  {\n    \"id\": \"chat-abc123\",\n    \"name\": \"Family Group\",\n    \"service\": \"whatsapp\",\n    \"unreadCount\": 5,\n    \"lastMessage\": {\n      \"text\": \"See you at dinner!\",\n      \"timestamp\": \"2026-01-23T15:30:00Z\"\n    }\n  },\n  {\n    \"id\": \"chat-xyz789\",\n    \"name\": \"Work Team\",\n    \"service\": \"slack\",\n    \"unreadCount\": 0,\n    \"lastMessage\": {\n      \"text\": \"Meeting moved to 3pm\",\n      \"timestamp\": \"2026-01-23T14:00:00Z\"\n    }\n  }\n]\n\nSearch Beeper Chats\n\ncurl -s \"${BEEPER_API_URL}/v1/chats/search?q=project+meeting\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n\nGet Chat Details\n\ncurl -s \"${BEEPER_API_URL}/v1/chats/{chatID}\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n\nExample Response:\n\n{\n  \"id\": \"chat-abc123\",\n  \"name\": \"Family Group\",\n  \"service\": \"whatsapp\",\n  \"unreadCount\": 5,\n  \"participants\": [\n    {\"id\": \"user-1\", \"name\": \"Mom\", \"phone\": \"+15551234567\"},\n    {\"id\": \"user-2\", \"name\": \"Dad\", \"phone\": \"+15559876543\"},\n    {\"id\": \"user-3\", \"name\": \"You\", \"phone\": \"+15555555555\"}\n  ],\n  \"archived\": false,\n  \"muted\": false\n}\n\nCreate a New Beeper Chat\n\ncurl -X POST \"${BEEPER_API_URL}/v1/chats\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"accountID\": \"whatsapp-abc123\",\n    \"participants\": [\"+1234567890\"]\n  }'\n\nArchive/Unarchive Chat\n\ncurl -X POST \"${BEEPER_API_URL}/v1/chats/{chatID}/archive\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"archived\": true}'"
      },
      {
        "title": "Messages",
        "body": "List Messages in a Chat\n\ncurl -s \"${BEEPER_API_URL}/v1/chats/{chatID}/messages\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n\nExample Response:\n\n[\n  {\n    \"id\": \"msg-001\",\n    \"chatID\": \"chat-abc123\",\n    \"sender\": {\"id\": \"user-1\", \"name\": \"Mom\"},\n    \"text\": \"Don't forget to call grandma!\",\n    \"timestamp\": \"2026-01-23T15:30:00Z\",\n    \"reactions\": [\n      {\"emoji\": \"👍\", \"user\": {\"id\": \"user-2\", \"name\": \"Dad\"}}\n    ]\n  },\n  {\n    \"id\": \"msg-002\",\n    \"chatID\": \"chat-abc123\",\n    \"sender\": {\"id\": \"user-2\", \"name\": \"Dad\"},\n    \"text\": \"See you at dinner!\",\n    \"timestamp\": \"2026-01-23T15:25:00Z\",\n    \"reactions\": []\n  }\n]\n\nSearch Messages Across All Beeper Networks\n\ncurl -s \"${BEEPER_API_URL}/v1/messages/search?q=dinner+plans\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n\nExample Response:\n\n{\n  \"results\": [\n    {\n      \"id\": \"msg-xyz\",\n      \"chatID\": \"chat-abc123\",\n      \"chatName\": \"Family Group\",\n      \"service\": \"whatsapp\",\n      \"text\": \"What are the dinner plans for tonight?\",\n      \"sender\": {\"name\": \"Mom\"},\n      \"timestamp\": \"2026-01-23T12:00:00Z\"\n    }\n  ],\n  \"total\": 1\n}\n\nSend a Message via Beeper\n\ncurl -X POST \"${BEEPER_API_URL}/v1/chats/{chatID}/messages\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\": \"Hello from my lobster! 🦞\"}'\n\nExample Response:\n\n{\n  \"id\": \"msg-new123\",\n  \"chatID\": \"chat-abc123\",\n  \"text\": \"Hello from my lobster! 🦞\",\n  \"timestamp\": \"2026-01-23T16:00:00Z\",\n  \"status\": \"sent\"\n}\n\nReply to a Message\n\ncurl -X POST \"${BEEPER_API_URL}/v1/chats/{chatID}/messages\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"text\": \"Sounds good!\",\n    \"replyTo\": \"msg-001\"\n  }'\n\nMark Messages as Read\n\ncurl -X POST \"${BEEPER_API_URL}/v1/chats/{chatID}/read\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"upToMessageID\": \"msg-001\"}'"
      },
      {
        "title": "Reactions",
        "body": "Add a Reaction to a Message\n\ncurl -X POST \"${BEEPER_API_URL}/v1/chats/{chatID}/messages/{messageID}/reactions\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"emoji\": \"👍\"}'\n\nRemove a Reaction\n\ncurl -X DELETE \"${BEEPER_API_URL}/v1/chats/{chatID}/messages/{messageID}/reactions\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"emoji\": \"👍\"}'"
      },
      {
        "title": "Contacts",
        "body": "Search Contacts on an Account\n\ncurl -s \"${BEEPER_API_URL}/v1/accounts/{accountID}/contacts?q=john\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n\nExample Response:\n\n[\n  {\n    \"id\": \"contact-123\",\n    \"name\": \"John Smith\",\n    \"phone\": \"+15551234567\",\n    \"avatar\": \"https://...\"\n  },\n  {\n    \"id\": \"contact-456\",\n    \"name\": \"Johnny Appleseed\",\n    \"phone\": \"+15559876543\",\n    \"avatar\": \"https://...\"\n  }\n]"
      },
      {
        "title": "Reminders",
        "body": "Create Chat Reminder\n\nSet a reminder for a chat:\n\ncurl -X POST \"${BEEPER_API_URL}/v1/chats/{chatID}/reminders\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"remindAt\": \"2026-01-25T10:00:00Z\"}'\n\nDelete Chat Reminder\n\ncurl -X DELETE \"${BEEPER_API_URL}/v1/chats/{chatID}/reminders\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\""
      },
      {
        "title": "Assets",
        "body": "Download Message Attachment\n\ncurl -X POST \"${BEEPER_API_URL}/v1/assets/download\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"assetID\": \"asset-id-here\"}' \\\n  --output attachment.file"
      },
      {
        "title": "Get Unread Summary from Beeper",
        "body": "curl -s \"${BEEPER_API_URL}/v1/chats?unreadOnly=true\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" | \\\n  jq '.[] | \"[\\(.service)] \\(.name): \\(.unreadCount) unread\"'\n\nExample Output:\n\n[whatsapp] Family Group: 5 unread\n[slack] Work Team: 12 unread\n[signal] Best Friend: 2 unread"
      },
      {
        "title": "Find a WhatsApp Chat in Beeper",
        "body": "# Get your WhatsApp account ID from Beeper\nWHATSAPP=$(curl -s \"${BEEPER_API_URL}/v1/accounts\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" | \\\n  jq -r '.[] | select(.service == \"whatsapp\") | .id')\n\n# Search for a contact\ncurl -s \"${BEEPER_API_URL}/v1/chats/search?q=Mom\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\""
      },
      {
        "title": "Mark All Chats as Read",
        "body": "for chatID in $(curl -s \"${BEEPER_API_URL}/v1/chats?unreadOnly=true\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" | jq -r '.[].id'); do\n  curl -X POST \"${BEEPER_API_URL}/v1/chats/${chatID}/read\" \\\n    -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n  echo \"Marked ${chatID} as read\"\ndone"
      },
      {
        "title": "Quick React to Last Message",
        "body": "# Get the last message ID from a chat\nLAST_MSG=$(curl -s \"${BEEPER_API_URL}/v1/chats/{chatID}/messages?limit=1\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" | jq -r '.[0].id')\n\n# React with thumbs up\ncurl -X POST \"${BEEPER_API_URL}/v1/chats/{chatID}/messages/${LAST_MSG}/reactions\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"emoji\": \"👍\"}'"
      },
      {
        "title": "Check if Beeper is Ready",
        "body": "curl -s --connect-timeout 2 \"${BEEPER_API_URL:-http://localhost:23373}/health\" && echo \"Beeper is ready!\""
      },
      {
        "title": "Get Messages from Last 24 Hours",
        "body": "YESTERDAY=$(date -u -v-1d +\"%Y-%m-%dT%H:%M:%SZ\" 2>/dev/null || date -u -d \"1 day ago\" +\"%Y-%m-%dT%H:%M:%SZ\")\n\ncurl -s \"${BEEPER_API_URL}/v1/messages/search?after=${YESTERDAY}\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\""
      },
      {
        "title": "Filter Chats by Service",
        "body": "# Get only Signal chats\ncurl -s \"${BEEPER_API_URL}/v1/chats\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" | \\\n  jq '[.[] | select(.service == \"signal\")]'\n\n# Get only Slack chats\ncurl -s \"${BEEPER_API_URL}/v1/chats\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" | \\\n  jq '[.[] | select(.service == \"slack\")]'"
      },
      {
        "title": "Good to Know",
        "body": "Beeper Desktop must be running - The API lives inside Beeper Desktop. No Beeper = no connection.\n\nIt's local & private - The Beeper API runs entirely on your machine. Your messages never touch external servers through this skill.\n\nRespect the networks - This is for personal use. Sending too many messages might trigger rate limits on WhatsApp, etc.\n\niMessage needs macOS - Apple gonna Apple.\n\nReactions vary by network - Not all platforms support all emoji. Beeper handles the translation."
      },
      {
        "title": "\"Can't connect to Beeper\"",
        "body": "Is Beeper Desktop running? Look for it in your menu bar.\nIs the API enabled? Beeper → Settings → Developers → Beeper Desktop API\nCheck the port: curl http://localhost:23373/health"
      },
      {
        "title": "\"Authentication failed\"",
        "body": "Generate a fresh token in Beeper → Settings → Developers\nMake sure it's in your config (no extra spaces!)\nOr just remove the token - Beeper will prompt for OAuth"
      },
      {
        "title": "\"Chat not found\"",
        "body": "Make sure the chat exists in your Beeper app\nTry different search terms\nCheck that the account (WhatsApp, Telegram, etc.) is connected in Beeper"
      },
      {
        "title": "\"Reaction not supported\"",
        "body": "Some networks have limited emoji support. Try a more common emoji like 👍 ❤️ 😂 😮 😢 😡"
      },
      {
        "title": "Links",
        "body": "Get Beeper - Free download\nBeeper Developer Docs - Full API reference\nBeeper MCP - For Claude Desktop & Cursor users\nBeeper Desktop API Reference - Complete endpoint docs"
      },
      {
        "title": "Credits",
        "body": "Built with 🦞 by @nickhamze and the Clawdbot community.\n\nPowered by Beeper - One app for all your chats.\n\nClaw Me Maybe - because your lobster should be able to reach you anywhere."
      }
    ],
    "body": "Claw Me Maybe - Beeper Desktop API & Multi-Platform Messaging 📟\n\nYour lobster just got a Beeper.\n\nFinally, your Clawdbot can reach you (and everyone else) across every chat platform. WhatsApp? Telegram? Signal? Discord? Slack? Instagram DMs? LinkedIn? iMessage? All of them. One skill. One claw.\n\nPowered by Beeper - the app that unifies all your chats.\n\nWhat Can Your Lobster Do With Beeper?\n\n🔍 Search Everything - \"What did Sarah say about the project last week?\" Your lobster will dig through all your Beeper chats instantly.\n\n💬 Send Messages Anywhere - \"Tell Mom I'll be late\" - and it goes to WhatsApp. \"Message the team on Slack\" - done. No app switching.\n\n📊 Summarize Your Inbox - \"What did I miss?\" Get a digest of unread messages across all your Beeper networks.\n\n🔔 Set Reminders - \"Remind me to reply to this chat tomorrow\" - your lobster remembers so you don't have to.\n\n📎 Grab Attachments - Download files, images, and media from any Beeper conversation.\n\n😀 React to Messages - Add emoji reactions to any message across any Beeper network.\n\n✅ Mark as Read - Keep your Beeper inbox tidy by marking conversations as read.\n\nSupported Beeper Networks\n\nYour Clawdbot can reach you on any platform Beeper supports:\n\nPlatform\tStatus\nWhatsApp\t✅ Full Support\nTelegram\t✅ Full Support\nSignal\t✅ Full Support\nDiscord\t✅ Full Support\nSlack\t✅ Full Support\nInstagram DMs\t✅ Full Support\nFacebook Messenger\t✅ Full Support\nLinkedIn Messages\t✅ Full Support\nX (Twitter) DMs\t✅ Full Support\nGoogle Messages\t✅ Full Support\nGoogle Chat\t✅ Full Support\niMessage\t✅ macOS only\n\nOne skill. Twelve platforms. Infinite possibilities.\n\nQuick Start\n1. Get Beeper\n\nDon't have Beeper yet? Download it free - it's the app that brings all your chats together.\n\n2. Enable the Beeper Desktop API\n\nOpen Beeper Desktop → Settings → Developers → Toggle \"Beeper Desktop API\" ON\n\nThat's it. Your lobster now has a direct line to all your chats.\n\n3. (Optional) Add Your Beeper Token\n\nFor smoother automation, grab an access token:\n\nBeeper Desktop → Settings → Developers\nClick \"Create Access Token\"\nAdd to ~/.clawdbot/clawdbot.json:\n{\n  \"skills\": {\n    \"entries\": {\n      \"claw-me-maybe\": {\n        \"enabled\": true,\n        \"env\": {\n          \"BEEPER_ACCESS_TOKEN\": \"your-token-here\"\n        }\n      }\n    }\n  }\n}\n\n\nNote: BEEPER_API_URL defaults to http://localhost:23373 - no need to set it unless you're running Beeper on a different port.\n\nTalk to Your Lobster\n\nOnce set up, just ask naturally:\n\n\"Show me my unread messages in Beeper\"\n\n\"Search my Beeper chats for messages about dinner plans\"\n\n\"Send a WhatsApp message to John saying I'm on my way\"\n\n\"What's the latest in my Signal group chat?\"\n\n\"Message the #general channel on Slack: standup in 5 minutes\"\n\n\"Find all messages from Lisa in the last week\"\n\n\"React with 👍 to that last message\"\n\n\"Mark my Discord chats as read\"\n\nYour lobster handles the rest through Beeper.\n\nThe Technical Stuff\n\n(For those who like to peek under the shell)\n\nBeeper API Basics\n\nBase URL: http://localhost:23373 (Beeper Desktop must be running)\n\n# Auth header (when using a token)\n-H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n\nAccounts\nList Your Beeper Accounts\n\nSee all connected platforms in your Beeper:\n\ncurl -s \"${BEEPER_API_URL}/v1/accounts\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n\n\nExample Response:\n\n[\n  {\n    \"id\": \"whatsapp-abc123\",\n    \"service\": \"whatsapp\",\n    \"displayName\": \"+1 555-123-4567\",\n    \"connected\": true\n  },\n  {\n    \"id\": \"telegram-xyz789\",\n    \"service\": \"telegram\",\n    \"displayName\": \"@myusername\",\n    \"connected\": true\n  },\n  {\n    \"id\": \"signal-def456\",\n    \"service\": \"signal\",\n    \"displayName\": \"+1 555-987-6543\",\n    \"connected\": true\n  }\n]\n\nChats\nList All Beeper Chats\ncurl -s \"${BEEPER_API_URL}/v1/chats\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n\n\nExample Response:\n\n[\n  {\n    \"id\": \"chat-abc123\",\n    \"name\": \"Family Group\",\n    \"service\": \"whatsapp\",\n    \"unreadCount\": 5,\n    \"lastMessage\": {\n      \"text\": \"See you at dinner!\",\n      \"timestamp\": \"2026-01-23T15:30:00Z\"\n    }\n  },\n  {\n    \"id\": \"chat-xyz789\",\n    \"name\": \"Work Team\",\n    \"service\": \"slack\",\n    \"unreadCount\": 0,\n    \"lastMessage\": {\n      \"text\": \"Meeting moved to 3pm\",\n      \"timestamp\": \"2026-01-23T14:00:00Z\"\n    }\n  }\n]\n\nSearch Beeper Chats\ncurl -s \"${BEEPER_API_URL}/v1/chats/search?q=project+meeting\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n\nGet Chat Details\ncurl -s \"${BEEPER_API_URL}/v1/chats/{chatID}\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n\n\nExample Response:\n\n{\n  \"id\": \"chat-abc123\",\n  \"name\": \"Family Group\",\n  \"service\": \"whatsapp\",\n  \"unreadCount\": 5,\n  \"participants\": [\n    {\"id\": \"user-1\", \"name\": \"Mom\", \"phone\": \"+15551234567\"},\n    {\"id\": \"user-2\", \"name\": \"Dad\", \"phone\": \"+15559876543\"},\n    {\"id\": \"user-3\", \"name\": \"You\", \"phone\": \"+15555555555\"}\n  ],\n  \"archived\": false,\n  \"muted\": false\n}\n\nCreate a New Beeper Chat\ncurl -X POST \"${BEEPER_API_URL}/v1/chats\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"accountID\": \"whatsapp-abc123\",\n    \"participants\": [\"+1234567890\"]\n  }'\n\nArchive/Unarchive Chat\ncurl -X POST \"${BEEPER_API_URL}/v1/chats/{chatID}/archive\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"archived\": true}'\n\nMessages\nList Messages in a Chat\ncurl -s \"${BEEPER_API_URL}/v1/chats/{chatID}/messages\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n\n\nExample Response:\n\n[\n  {\n    \"id\": \"msg-001\",\n    \"chatID\": \"chat-abc123\",\n    \"sender\": {\"id\": \"user-1\", \"name\": \"Mom\"},\n    \"text\": \"Don't forget to call grandma!\",\n    \"timestamp\": \"2026-01-23T15:30:00Z\",\n    \"reactions\": [\n      {\"emoji\": \"👍\", \"user\": {\"id\": \"user-2\", \"name\": \"Dad\"}}\n    ]\n  },\n  {\n    \"id\": \"msg-002\",\n    \"chatID\": \"chat-abc123\",\n    \"sender\": {\"id\": \"user-2\", \"name\": \"Dad\"},\n    \"text\": \"See you at dinner!\",\n    \"timestamp\": \"2026-01-23T15:25:00Z\",\n    \"reactions\": []\n  }\n]\n\nSearch Messages Across All Beeper Networks\ncurl -s \"${BEEPER_API_URL}/v1/messages/search?q=dinner+plans\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n\n\nExample Response:\n\n{\n  \"results\": [\n    {\n      \"id\": \"msg-xyz\",\n      \"chatID\": \"chat-abc123\",\n      \"chatName\": \"Family Group\",\n      \"service\": \"whatsapp\",\n      \"text\": \"What are the dinner plans for tonight?\",\n      \"sender\": {\"name\": \"Mom\"},\n      \"timestamp\": \"2026-01-23T12:00:00Z\"\n    }\n  ],\n  \"total\": 1\n}\n\nSend a Message via Beeper\ncurl -X POST \"${BEEPER_API_URL}/v1/chats/{chatID}/messages\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\": \"Hello from my lobster! 🦞\"}'\n\n\nExample Response:\n\n{\n  \"id\": \"msg-new123\",\n  \"chatID\": \"chat-abc123\",\n  \"text\": \"Hello from my lobster! 🦞\",\n  \"timestamp\": \"2026-01-23T16:00:00Z\",\n  \"status\": \"sent\"\n}\n\nReply to a Message\ncurl -X POST \"${BEEPER_API_URL}/v1/chats/{chatID}/messages\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"text\": \"Sounds good!\",\n    \"replyTo\": \"msg-001\"\n  }'\n\nMark Messages as Read\ncurl -X POST \"${BEEPER_API_URL}/v1/chats/{chatID}/read\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"upToMessageID\": \"msg-001\"}'\n\nReactions\nAdd a Reaction to a Message\ncurl -X POST \"${BEEPER_API_URL}/v1/chats/{chatID}/messages/{messageID}/reactions\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"emoji\": \"👍\"}'\n\nRemove a Reaction\ncurl -X DELETE \"${BEEPER_API_URL}/v1/chats/{chatID}/messages/{messageID}/reactions\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"emoji\": \"👍\"}'\n\nContacts\nSearch Contacts on an Account\ncurl -s \"${BEEPER_API_URL}/v1/accounts/{accountID}/contacts?q=john\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n\n\nExample Response:\n\n[\n  {\n    \"id\": \"contact-123\",\n    \"name\": \"John Smith\",\n    \"phone\": \"+15551234567\",\n    \"avatar\": \"https://...\"\n  },\n  {\n    \"id\": \"contact-456\",\n    \"name\": \"Johnny Appleseed\",\n    \"phone\": \"+15559876543\",\n    \"avatar\": \"https://...\"\n  }\n]\n\nReminders\nCreate Chat Reminder\n\nSet a reminder for a chat:\n\ncurl -X POST \"${BEEPER_API_URL}/v1/chats/{chatID}/reminders\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"remindAt\": \"2026-01-25T10:00:00Z\"}'\n\nDelete Chat Reminder\ncurl -X DELETE \"${BEEPER_API_URL}/v1/chats/{chatID}/reminders\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n\nAssets\nDownload Message Attachment\ncurl -X POST \"${BEEPER_API_URL}/v1/assets/download\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"assetID\": \"asset-id-here\"}' \\\n  --output attachment.file\n\nPro Tips 🦞\nGet Unread Summary from Beeper\ncurl -s \"${BEEPER_API_URL}/v1/chats?unreadOnly=true\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" | \\\n  jq '.[] | \"[\\(.service)] \\(.name): \\(.unreadCount) unread\"'\n\n\nExample Output:\n\n[whatsapp] Family Group: 5 unread\n[slack] Work Team: 12 unread\n[signal] Best Friend: 2 unread\n\nFind a WhatsApp Chat in Beeper\n# Get your WhatsApp account ID from Beeper\nWHATSAPP=$(curl -s \"${BEEPER_API_URL}/v1/accounts\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" | \\\n  jq -r '.[] | select(.service == \"whatsapp\") | .id')\n\n# Search for a contact\ncurl -s \"${BEEPER_API_URL}/v1/chats/search?q=Mom\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n\nMark All Chats as Read\nfor chatID in $(curl -s \"${BEEPER_API_URL}/v1/chats?unreadOnly=true\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" | jq -r '.[].id'); do\n  curl -X POST \"${BEEPER_API_URL}/v1/chats/${chatID}/read\" \\\n    -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n  echo \"Marked ${chatID} as read\"\ndone\n\nQuick React to Last Message\n# Get the last message ID from a chat\nLAST_MSG=$(curl -s \"${BEEPER_API_URL}/v1/chats/{chatID}/messages?limit=1\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" | jq -r '.[0].id')\n\n# React with thumbs up\ncurl -X POST \"${BEEPER_API_URL}/v1/chats/{chatID}/messages/${LAST_MSG}/reactions\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"emoji\": \"👍\"}'\n\nCheck if Beeper is Ready\ncurl -s --connect-timeout 2 \"${BEEPER_API_URL:-http://localhost:23373}/health\" && echo \"Beeper is ready!\"\n\nGet Messages from Last 24 Hours\nYESTERDAY=$(date -u -v-1d +\"%Y-%m-%dT%H:%M:%SZ\" 2>/dev/null || date -u -d \"1 day ago\" +\"%Y-%m-%dT%H:%M:%SZ\")\n\ncurl -s \"${BEEPER_API_URL}/v1/messages/search?after=${YESTERDAY}\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\"\n\nFilter Chats by Service\n# Get only Signal chats\ncurl -s \"${BEEPER_API_URL}/v1/chats\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" | \\\n  jq '[.[] | select(.service == \"signal\")]'\n\n# Get only Slack chats\ncurl -s \"${BEEPER_API_URL}/v1/chats\" \\\n  -H \"Authorization: Bearer ${BEEPER_ACCESS_TOKEN}\" | \\\n  jq '[.[] | select(.service == \"slack\")]'\n\nGood to Know\n\nBeeper Desktop must be running - The API lives inside Beeper Desktop. No Beeper = no connection.\n\nIt's local & private - The Beeper API runs entirely on your machine. Your messages never touch external servers through this skill.\n\nRespect the networks - This is for personal use. Sending too many messages might trigger rate limits on WhatsApp, etc.\n\niMessage needs macOS - Apple gonna Apple.\n\nReactions vary by network - Not all platforms support all emoji. Beeper handles the translation.\n\nTroubleshooting\n\"Can't connect to Beeper\"\nIs Beeper Desktop running? Look for it in your menu bar.\nIs the API enabled? Beeper → Settings → Developers → Beeper Desktop API\nCheck the port: curl http://localhost:23373/health\n\"Authentication failed\"\nGenerate a fresh token in Beeper → Settings → Developers\nMake sure it's in your config (no extra spaces!)\nOr just remove the token - Beeper will prompt for OAuth\n\"Chat not found\"\nMake sure the chat exists in your Beeper app\nTry different search terms\nCheck that the account (WhatsApp, Telegram, etc.) is connected in Beeper\n\"Reaction not supported\"\n\nSome networks have limited emoji support. Try a more common emoji like 👍 ❤️ 😂 😮 😢 😡\n\nLinks\nGet Beeper - Free download\nBeeper Developer Docs - Full API reference\nBeeper MCP - For Claude Desktop & Cursor users\nBeeper Desktop API Reference - Complete endpoint docs\nCredits\n\nBuilt with 🦞 by @nickhamze and the Clawdbot community.\n\nPowered by Beeper - One app for all your chats.\n\nClaw Me Maybe - because your lobster should be able to reach you anywhere."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/nickhamze/claw-me-maybe",
    "publisherUrl": "https://clawhub.ai/nickhamze/claw-me-maybe",
    "owner": "nickhamze",
    "version": "1.2.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/claw-me-maybe",
    "downloadUrl": "https://openagent3.xyz/downloads/claw-me-maybe",
    "agentUrl": "https://openagent3.xyz/skills/claw-me-maybe/agent",
    "manifestUrl": "https://openagent3.xyz/skills/claw-me-maybe/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/claw-me-maybe/agent.md"
  }
}