Claw Me Maybe - Beeper Desktop API & Multi-Platform Messaging技能使用说明
《钳住我,或许》- Beeper桌面API与跨平台消息收发 📟
你的龙虾刚刚收到一台Beeper。
终于,你的Clawdbot能够跨越所有聊天平台联系到你(以及其他人)。WhatsApp?Telegram?Signal?Discord?Slack?Instagram私信?LinkedIn?iMessage?全部搞定。一种技能。一只钳子。
由Beeper驱动——这款应用整合了你所有的聊天。
你的龙虾能用Beeper做什么?
🔍搜索一切- "Sarah上周关于项目说了什么?"你的龙虾会立即翻遍你所有的Beeper聊天记录。
💬随处发送消息- "告诉妈妈我会晚到"——消息发送到WhatsApp。"在Slack上给团队发消息"——搞定。无需切换应用。
📊汇总你的收件箱- "我错过了什么?"获取你在所有Beeper网络中的未读消息摘要。
🔔设置提醒- "提醒我明天回复这条聊天"——你的小龙虾帮你记住,无需你费心。
📎获取附件- 从任何Beeper对话中下载文件、图片和媒体。
😀对消息做出反应- 在Beeper支持的任何网络中的消息上添加表情符号反应。
✅标记为已读- 将对话标记为已读,保持您的Beeper收件箱整洁。
支持的Beeper网络
您的Clawdbot可以在Beeper支持的任何平台上联系您:
| 平台 | 状态 |
|---|---|
| ✅ 完全支持 | |
| Telegram | ✅ 完全支持 |
| Signal | ✅ 完全支持 |
| Discord | ✅ 完全支持 |
| Slack | ✅ 完全支持 |
| Instagram 私信 | ✅ 完全支持 |
| Facebook Messenger | ✅ 完全支持 |
| 领英消息 | ✅ 完全支持 |
| X (Twitter) 私信 | ✅ 完全支持 |
| Google 信息 | ✅ 完全支持 |
| Google Chat | ✅ 完全支持 |
| iMessage | ✅ 仅限 macOS |
一项技能。十二个平台。无限可能。
快速开始
1. 获取 Beeper
还没有 Beeper?免费下载——这款应用能将您所有的聊天汇聚一处。
2. 启用Beeper桌面API
打开Beeper桌面 →设置→开发者选项→ 切换"Beeper桌面API"开启
就这样。你的龙虾现在可以直接连线你的所有聊天了。
3. (可选)添加你的Beeper令牌
为了实现更流畅的自动化,获取一个访问令牌:
- Beeper桌面 → 设置 → 开发者选项
- 点击"创建访问令牌"
- 添加到
~/.clawdbot/clawdbot.json文件中:
{
"skills": {
"entries": {
"claw-me-maybe": {
"enabled": true,
"env": {
"BEEPER_ACCESS_TOKEN": "your-token-here"
}
}
}
}
}
注意:BEEPER_API_URL默认值为http://localhost:23373——除非你在不同的端口上运行Beeper,否则无需设置此值。
与你的龙虾对话
设置完成后,只需自然地提问:
"在Beeper中显示我的未读消息"
"在我的Beeper聊天记录中搜索关于晚餐计划的消息"
"给约翰发送一条WhatsApp消息,说我正在路上"
"我的Signal群聊里有什么最新消息?"
"在Slack的#general频道发送消息:五分钟后进行站立会议"
"查找过去一周内莉莎的所有消息"
"给上一条消息点个👍"
"将我的Discord聊天标记为已读"
您的龙虾通过Beeper处理剩下的部分。
技术细节
(献给那些喜欢一探究竟的人)
Beeper API基础
基础URL:http://localhost:23373(必须运行Beeper Desktop)
# Auth header (when using a token)
-H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}"
账户
列出您的Beeper账户
查看您在Beeper中连接的所有平台:
curl -s "${BEEPER_API_URL}/v1/accounts" \
-H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}"
示例响应:
[
{
"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聊天
curl -s "${BEEPER_API_URL}/v1/chats" \
-H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}"
搜索 Beeper 聊天记录
[
{
"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"
}
}
]
获取聊天详情
curl -s "${BEEPER_API_URL}/v1/chats/search?q=project+meeting" \
-H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}"
示例响应:
curl -s "${BEEPER_API_URL}/v1/chats/{chatID}" \
-H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}"
创建新的 Beeper 聊天
{
"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
}
归档/取消归档聊天
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"]
}'
消息
curl -X POST "${BEEPER_API_URL}/v1/chats/{chatID}/archive" \
-H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"archived": true}'
列出聊天中的消息
示例响应:
curl -s "${BEEPER_API_URL}/v1/chats/{chatID}/messages" \
-H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}"
在所有 Beeper 网络中搜索消息
[
{
"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": []
}
]
示例响应:
curl -s "${BEEPER_API_URL}/v1/messages/search?q=dinner+plans" \
-H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}"
通过 Beeper 发送消息
{
"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
}
示例响应:
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! 🦞"}'
回复消息
{
"id": "msg-new123",
"chatID": "chat-abc123",
"text": "Hello from my lobster! 🦞",
"timestamp": "2026-01-23T16:00:00Z",
"status": "sent"
}
将消息标记为已读
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"
}'
反应
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"}'
为消息添加反应
移除反应
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": "👍"}'
联系人
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": "👍"}'
搜索账户上的联系人
示例响应:
curl -s "${BEEPER_API_URL}/v1/accounts/{accountID}/contacts?q=john" \
-H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}"
提醒
[
{
"id": "contact-123",
"name": "John Smith",
"phone": "+15551234567",
"avatar": "https://..."
},
{
"id": "contact-456",
"name": "Johnny Appleseed",
"phone": "+15559876543",
"avatar": "https://..."
}
]
创建聊天提醒
为聊天设置提醒:
Set a reminder for a chat:
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"}'
删除聊天提醒
curl -X DELETE "${BEEPER_API_URL}/v1/chats/{chatID}/reminders" \
-H "Authorization: Bearer ${BEEPER_ACCESS_TOKEN}"
资产
下载消息附件
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获取未读消息摘要
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聊天
# 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}"
将所有聊天标记为已读
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
快速回复最后一条消息
# 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是否就绪
curl -s --connect-timeout 2 "${BEEPER_API_URL:-http://localhost:23373}/health" && echo "Beeper is ready!"
获取过去24小时的消息
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}"
按服务筛选聊天
# 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 Desktop必须正在运行- API内置于Beeper Desktop中。没有Beeper = 没有连接。
它是本地且私密的- Beeper API完全在您的机器上运行。通过此功能,您的消息绝不会触及外部服务器。
尊重网络规则- 此功能仅供个人使用。发送过多消息可能会触发WhatsApp等的速率限制。
iMessage需要macOS- 苹果还是那个苹果。
各网络平台的反应功能有所不同- 并非所有平台都支持全部表情符号。Beeper会负责转换处理。
故障排除
"无法连接至Beeper"
- Beeper桌面端是否正在运行?请在菜单栏中查找其图标。
- API功能是否已启用?请前往Beeper → 设置 → 开发者选项 → Beeper桌面端API
- 检查端口:
curl http://localhost:23373/health
"身份验证失败"
- 请在Beeper中生成新的令牌:前往设置 → 开发者选项
- 确保令牌已正确写入配置文件(注意不要有多余空格!)
- 或直接移除令牌——Beeper将提示您进行OAuth验证
"未找到聊天"
- 请确认该聊天在您的Beeper应用中确实存在
- 尝试使用不同的搜索关键词
- 检查相关账户(如WhatsApp、Telegram等)是否已在Beeper中完成连接
"不支持该反应"
部分网络平台的表情符号支持有限。请尝试使用更常见的表情,例如:👍 ❤️ 😂 😮 😢 😡
链接
- 获取Beeper- 免费下载
- Beeper开发者文档- 完整API参考
- Beeper MCP- 适用于Claude Desktop和Cursor用户
- Beeper桌面端API参考- 完整的端点文档
鸣谢
由@nickhamze和Clawdbot社区用🦞打造。
由以下提供支持Beeper- 一款整合所有聊天应用的应用。
Claw Me Maybe——因为你的龙虾应该能在任何地方联系到你。


微信扫一扫,打赏作者吧~