一键导入
whatsapp-messages
Read unread WhatsApp messages and optionally reply. Use when user says "check my WhatsApp", "read my messages", "any new WhatsApp messages", etc.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Read unread WhatsApp messages and optionally reply. Use when user says "check my WhatsApp", "read my messages", "any new WhatsApp messages", etc.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Execute user instructions on the phone via ClawPaw MCP tools. Use when a user wants to do something on the phone — send a message, open an app, tap something, take a screenshot, etc.
Guide users through ClawPaw Android setup — installing the APK, granting permissions, connecting SSH tunnel, and verifying the full LLM-to-phone control chain. Use when a user wants to set up ClawPaw, install the app, connect a new phone, or troubleshoot connection issues.
Check, install, and activate ADBKeyboard for full Unicode/Chinese/emoji text input
Location check-in with auto photo, geocoding, weather, and a generated caption
End-of-day report with trajectory timeline, dwell-time stats, and notification summary
打开飞书并完成考勤打卡(上班/下班),支持迟到补卡。用户说"帮我打卡"、"飞书签到"时使用。
| name | whatsapp-messages |
| description | Read unread WhatsApp messages and optionally reply. Use when user says "check my WhatsApp", "read my messages", "any new WhatsApp messages", etc. |
| disable-model-invocation | true |
Read unread WhatsApp messages and optionally reply on behalf of the user. WhatsApp has no public API for personal accounts — this can only be done by operating the phone.
Use snapshot throughout. Avoid screenshot unless snapshot returns no useful elements.
com.whatsapp
shell → monkey -p com.whatsapp -c android.intent.category.LAUNCHER 1
snapshot — confirm WhatsApp is open. Look for elements with id containing com.whatsapp. If not loaded yet, wait 2s and retry.
snapshot the chat list. Key elements:
| Element | Resource ID | Content |
|---|---|---|
| Contact name | conversations_row_contact_name | Chat name |
| Last message | single_msg_tv | Message preview |
| Unread badge | conversations_row_message_count | desc contains "未读消息" or shows unread count |
| Date | conversations_row_date | Last message date |
Identify unread chats: Look for elements with id conversations_row_message_count — their desc will say something like "1条未读消息". The corresponding chat row (contact_row_container) is the parent.
Collect all unread chats. If none found, report "No unread messages" to the user and stop.
For each unread chat:
tap the chat row (use bounds center of the contact_row_container)snapshot the conversation viewKey elements in chat view:
| Element | Resource ID | Content |
|---|---|---|
| Contact name | conversation_contact_name | Who you're chatting with |
| Message text | message_text | Each message bubble |
| Time | date | Message timestamp |
| Read status | status | desc "已读"/"已送达" — only on YOUR sent messages |
| Date divider | conversation_row_date_divider | Date separators like "2026年2月14日" |
| Unread divider | unread_divider_tv | "N条未读消息" — marks where unread starts |
Distinguish sent vs received:
status ImageView with desc like "已读" or "已送达"status elementRead all visible messages from the unread divider downward. If you need to see earlier messages, swipe down.
press_key back to return to chat listSummarize all unread messages:
WhatsApp — 2 unread chats:
1. **my Bro** (2 messages)
- "你换模型了吗" (18:58)
2. **John** (1 message)
- "Hey, are you free tonight?" (20:15)
Ask the user if they want to reply to any of them.
When the user wants to reply:
tap the chat to open it (from chat list, or navigate back if already inside)snapshot — find the input field: id="com.whatsapp:id/entry" (placeholder text "发消息")tap the input field (bounds center)type_text with the reply messagesnapshot — after typing, the voice note button changes to a send button. Find id="com.whatsapp:id/send" or the send icontap the send buttonsnapshot — verify the message appears in the chat with status showing "已送达" or similarresourceId for tapping. However, coordinates from bounds are still more reliable for tap actions.swipe up to see more. In a conversation, swipe down to see older messages.message_text won't exist for these — look for media_container or content descriptions like "视频" / "图片" instead. Report them as "[Image]", "[Video]", "[Voice message]".name_in_group_tv showing the sender name.