介绍
# Claw Me Maybe - Beeper Desktop API & Multi-Platform Messaging 📟
**你的龙虾刚刚配备了 Beeper。**
现在,你的 Clawdbot 终于可以跨越*所有*聊天平台联系到你(以及其他所有人)了。WhatsApp?Telegram?Signal?Discord?Slack?Instagram 私信?LinkedIn?iMessage?**全部支持。一项技能。一只爪子。**
由 [Beeper](https://www.beeper.com) 提供支持 —— 这是一款将你所有聊天汇总到一起的应用。
## 你的龙虾可以用 Beeper 做什么?
🔍 **搜索一切** —— “Sarah 上周关于那个项目说了什么?”你的龙虾会立即翻遍你所有的 Beeper 聊天记录。
💬 **随处发送消息** —— “告诉妈妈我会晚点” —— 消息就会发到 WhatsApp 上。“在 Slack 上给团队发个消息” —— 搞定。无需切换应用。
📊 **总结收件箱** —— “我错过了什么?”获取所有 Beeper 网络中未读消息的摘要。
🔔 **设置提醒** —— “提醒我明天回复这条聊天” —— 你的龙虾会帮你记着,不用你操心。
📎 **获取附件** —— 从任何 Beeper 对话中下载文件、图片和媒体。
😀 **对消息做出反应** —— 给任何 Beeper 网络中的任何消息添加表情符号反应。
✅ **标记为已读** —— 通过将对话标记为已读,保持 Beeper 收件箱整洁。
## 支持的 Beeper 网络
你的 Clawdbot 可以在 **Beeper 支持的任何平台** 上联系到你:
| 平台 | 状态 | |----------|--------| | WhatsApp | ✅ 完全支持 | | Telegram | ✅ 完全支持 | | Signal | ✅ 完全支持 | | Discord | ✅ 完全支持 | | Slack | ✅ 完全支持 | | Instagram 私信 | ✅ 完全支持 | | Facebook Messenger | ✅ 完全支持 | | LinkedIn 消息 | ✅ 完全支持 | | X (Twitter) 私信 | ✅ 完全支持 | | Google Messages | ✅ 完全支持 | | Google Chat | ✅ 完全支持 | | iMessage | ✅ 仅限 macOS |
**一项技能。十二个平台。无限可能。**
## 快速开始
### 1. 获取 Beeper
还没有 Beeper?[免费下载](https://www.beeper.com/download) —— 这款应用能将你所有的聊天汇总到一起。
### 2. 启用 Beeper 桌面版 API
打开 Beeper 桌面版 → **设置 (Settings)** → **开发者** → 打开 **“Beeper Desktop API”** 开关
就是这样。你的龙虾现在拥有了你所有聊天的直连通道。
### 3. (可选)添加你的 Beeper Token
为了更流畅的自动化体验,获取一个访问令牌:
1. Beeper 桌面版 → 设置 → 开发者 2. 点击 “Create Access Token” 3. 添加到 `~/.clawdbot/clawdbot.json`:
```json { "skills": { "entries": { "claw-me-maybe": { "enabled": true, "env": { "BEEPER_ACCESS_TOKEN": "your-token-here" } } } } } ```
注意:`BEEPER_API_URL` 默认为 `http://localhost:23373` —— 除非你在不同的端口上运行 Beeper,否则无需设置。
## 与你的龙虾对话
设置完成后,只需自然地提问:
> “Show me my unread messages in Beeper” (在 Beeper 中显示我的未读消息)
> “Search my Beeper chats for messages about dinner plans” (在我的 Beeper 聊天中搜索关于晚餐计划的消息)
> “Send a WhatsApp message to John saying I'm on my way” (给 John 发一条 WhatsApp 消息,说我正在路上)
> “What's the latest in my Signal group chat?” (我的 Signal 群聊里有什么最新消息?)
> “Message the #general channel on Slack: standup in 5 minutes” (给 Slack 上的 #general 频道发消息:5 分钟后开站会)
> “Find all messages from Lisa in the last week” (查找上周 Lisa 发来的所有消息)
> “React with 👍 to that last message” (给最后一条消息加个 👍 反应)
> “Mark my Discord chats as read” (把我的 Discord 聊天标记为已读)
你的龙虾会通过 Beeper 处理剩下的事情。
## 技术细节
*(写给那些喜欢探究内部构造的人)*
### Beeper API 基础
基础 URL:`http://localhost:23373`(Beeper 桌面版必须处于运行状态)
```bash # Auth header (when using a token) -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" ```
### 账户
#### 列出你的 Beeper 账户
查看 Beeper 中所有已连接的平台:
```bash curl -s "${BEEPER_API_URL}/v1/accounts" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" ```
**示例响应:** ```json [ { "id": "whatsapp-abc123", "service": "whatsapp", "displayName": "+1 555-123-4567", "connected": true }, { "id": "telegram-xyz789", "service": "telegram", "displayName": "@myusername", "connected": true }, { "id": "signal-def456", "service": "signal", "displayName": "+1 555-987-6543", "connected": true } ] ```
### 聊天
#### 列出所有 Beeper 聊天
```bash curl -s "${BEEPER_API_URL}/v1/chats" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" ```
**示例响应:** ```json [ { "id": "chat-abc123", "name": "Family Group", "service": "whatsapp", "unreadCount": 5, "lastMessage": { "text": "See you at dinner!", "timestamp": "2026-01-23T15:30:00Z" } }, { "id": "chat-xyz789", "name": "Work Team", "service": "slack", "unreadCount": 0, "lastMessage": { "text": "Meeting moved to 3pm", "timestamp": "2026-01-23T14:00:00Z" } } ] ```
#### 搜索 Beeper 聊天
```bash curl -s "${BEEPER_API_URL}/v1/chats/search?q=project+meeting" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" ```
#### 获取聊天详情
```bash curl -s "${BEEPER_API_URL}/v1/chats/{chatID}" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" ```
**示例响应:** ```json { "id": "chat-abc123", "name": "Family Group", "service": "whatsapp", "unreadCount": 5, "participants": [ {"id": "user-1", "name": "Mom", "phone": "+15551234567"}, {"id": "user-2", "name": "Dad", "phone": "+15559876543"}, {"id": "user-3", "name": "You", "phone": "+15555555555"} ], "archived": false, "muted": false } ```
#### 创建新的 Beeper 聊天
```bash curl -X POST "${BEEPER_API_URL}/v1/chats" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "accountID": "whatsapp-abc123", "participants": ["+1234567890"] }' ```
#### 归档/取消归档聊天
```bash curl -X POST "${BEEPER_API_URL}/v1/chats/{chatID}/archive" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"archived": true}' ```
### 消息
#### 列出聊天中的消息
```bash curl -s "${BEEPER_API_URL}/v1/chats/{chatID}/messages" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" ```
**示例响应:** ```json [ { "id": "msg-001", "chatID": "chat-abc123", "sender": {"id": "user-1", "name": "Mom"}, "text": "Don't forget to call grandma!", "timestamp": "2026-01-23T15:30:00Z", "reactions": [ {"emoji": "👍", "user": {"id": "user-2", "name": "Dad"}} ] }, { "id": "msg-002", "chatID": "chat-abc123", "sender": {"id": "user-2", "name": "Dad"}, "text": "See you at dinner!", "timestamp": "2026-01-23T15:25:00Z", "reactions": [] } ] ```
#### 搜索所有 Beeper 网络中的消息
```bash curl -s "${BEEPER_API_URL}/v1/messages/search?q=dinner+plans" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" ```
**示例响应:** ```json { "results": [ { "id": "msg-xyz", "chatID": "chat-abc123", "chatName": "Family Group", "service": "whatsapp", "text": "What are the dinner plans for tonight?", "sender": {"name": "Mom"}, "timestamp": "2026-01-23T12:00:00Z" } ], "total": 1 } ```
#### 通过 Beeper 发送消息
```bash curl -X POST "${BEEPER_API_URL}/v1/chats/{chatID}/messages" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"text": "Hello from my lobster! 🦞"}' ```
**示例响应:** ```json { "id": "msg-new123", "chatID": "chat-abc123", "text": "Hello from my lobster! 🦞", "timestamp": "2026-01-23T16:00:00Z", "status": "sent" } ```
#### 回复消息
```bash curl -X POST "${BEEPER_API_URL}/v1/chats/{chatID}/messages" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "text": "Sounds good!", "replyTo": "msg-001" }' ```
#### 将消息标记为已读
```bash curl -X POST "${BEEPER_API_URL}/v1/chats/{chatID}/read" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"upToMessageID": "msg-001"}' ```
### 反应
#### 给消息添加反应
```bash curl -X POST "${BEEPER_API_URL}/v1/chats/{chatID}/messages/{messageID}/reactions" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"emoji": "👍"}' ```
#### 移除反应
```bash curl -X DELETE "${BEEPER_API_URL}/v1/chats/{chatID}/messages/{messageID}/reactions" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"emoji": "👍"}' ```
### 联系人
#### 在账户上搜索联系人
```bash curl -s "${BEEPER_API_URL}/v1/accounts/{accountID}/contacts?q=john" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" ```
**示例响应:** ```json [ { "id": "contact-123", "name": "John Smith", "phone": "+15551234567", "avatar": "https://..." }, { "id": "contact-456", "name": "Johnny Appleseed", "phone": "+15559876543", "avatar": "https://..." } ] ```
### 提醒
#### 创建聊天提醒
为聊天设置提醒:
```bash curl -X POST "${BEEPER_API_URL}/v1/chats/{chatID}/reminders" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"remindAt": "2026-01-25T10:00:00Z"}' ```
#### 删除聊天提醒
```bash curl -X DELETE "${BEEPER_API_URL}/v1/chats/{chatID}/reminders" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" ```
### 资源
#### 下载消息附件
```bash curl -X POST "${BEEPER_API_URL}/v1/assets/download" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"assetID": "asset-id-here"}' \ --output attachment.file ```
## 专业技巧 🦞
### 从 Beeper 获取未读摘要
```bash curl -s "${BEEPER_API_URL}/v1/chats?unreadOnly=true" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" | \ jq '.[] | "[\(.service)] \(.name): \(.unreadCount) unread"' ```
**示例输出:** ``` [whatsapp] Family Group: 5 unread [slack] Work Team: 12 unread [signal] Best Friend: 2 unread ```
### 在 Beeper 中查找 WhatsApp 聊天
```bash # Get your WhatsApp account ID from Beeper WHATSAPP=$(curl -s "${BEEPER_API_URL}/v1/accounts" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" | \ jq -r '.[] | select(.service == "whatsapp") | .id') # Search for a contact curl -s "${BEEPER_API_URL}/v1/chats/search?q=Mom" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" ```
### 将所有聊天标记为已读
```bash for chatID in $(curl -s "${BEEPER_API_URL}/v1/chats?unreadOnly=true" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" | jq -r '.[].id'); do curl -X POST "${BEEPER_API_URL}/v1/chats/${chatID}/read" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" echo "Marked ${chatID} as read" done ```
### 快速对最后一条消息做出反应
```bash # Get the last message ID from a chat LAST_MSG=$(curl -s "${BEEPER_API_URL}/v1/chats/{chatID}/messages?limit=1" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" | jq -r '.[0].id') # React with thumbs up curl -X POST "${BEEPER_API_URL}/v1/chats/{chatID}/messages/${LAST_MSG}/reactions" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"emoji": "👍"}' ```
### 检查 Beeper 是否就绪
```bash curl -s --connect-timeout 2 "${BEEPER_API_URL:-http://localhost:23373}/health" && echo "Beeper is ready!" ```
### 获取过去 24 小时的消息
```bash 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") curl -s "${BEEPER_API_URL}/v1/messages/search?after=${YESTERDAY}" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" ```
### 按服务筛选聊天
```bash # Get only Signal chats curl -s "${BEEPER_API_URL}/v1/chats" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" | \ jq '[.[] | select(.service == "signal")]' # Get only Slack chats curl -s "${BEEPER_API_URL}/v1/chats" \ -H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" | \ jq '[.[] | select(.service == "slack")]' ```
## 注意事项
**Beeper 桌面版必须正在运行** —— API 位于 Beeper 桌面版内部。没有 Beeper 就没有连接。
**它是本地且私密的** —— Beeper API 完全在你的机器上运行。通过此技能,你的消息永远不会触碰外部服务器。
**尊重网络规则** —— 仅供个人使用。发送过多消息可能会触发 WhatsApp 等平台的速率限制。
**iMessage 需要 macOS** —— Apple 还是那个 Apple。
**反应因网络而异** —— 并非所有平台都支持所有表情符号。Beeper 会处理转换。
## 故障排除
### “无法连接到 Beeper”
1. Beeper 桌面版是否正在运行?在菜单栏中查找。 2. API 是否已启用?Beeper → 设置 → 开发者 → Beeper Desktop API 3. 检查端口:`curl http://localhost:23373/health`
### “身份验证失败”
1. 在 Beeper → 设置 → 开发者中生成一个新的 token 2. 确保它已添加到你的配置中(不要有多余的空格!) 3. 或者直接移除 token —— Beeper 会提示进行 OAuth
### “未找到聊天”
1. 确保该聊天存在于你的 Beeper 应用中 2. 尝试不同的搜索词 3. 检查该账户(WhatsApp、Telegram 等)是否已在 Beeper 中连接
### “不支持该反应”
某些网络对表情符号的支持有限。尝试使用更通用的表情符号,如 👍 ❤️ 😂 😮 😢 😡
## 链接
- [获取 Beeper](https://www.beeper.com/download) - 免费下载 - [Beeper 开发者文档](https://developers.beeper.com) - 完整 API 参考 - [Beeper MCP](https://www.beeper.com/mcp) - 适用于 Claude Desktop 和 Cursor 用户 - [Beeper 桌面版 API 参考](https://developers.beeper.com/desktop-api-reference/) - 完整的端点文档
## 致谢
由 @nickhamze 和 Clawdbot 社区用 🦞 打造。
由 [Beeper](https://www.beeper.com) 提供支持 —— 一款搞定你所有聊天的应用。
*Claw Me Maybe —— 因为你的龙虾应该能够随时随地联系到你。*