关于 whatsapp-skill
通过 WhatsApp Web 自动化进行消息发送和聊天访问的命令行 Skill。它支持读取聊天、搜索消息和管理多个账户会话;发送消息前必须获得明确确认。
主要功能
- 01向联系人和群组发送消息
- 02列出聊天并读取消息
- 03搜索消息
- 04管理联系人和群组
- 05使用命名账户会话
- 06发送前要求明确确认
适用场景
- 01通过命令行查看近期聊天
- 02查找符合查询内容的消息
- 03从指定账户发送经确认的消息
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ idanbeck/ claude-skills --skill whatsapp-skill安装后在 Claude Code 中输入/whatsapp-skill确认已加载。
附带文件package.jsonwhatsapp_skill.js
详细介绍
WhatsApp 技能 - 消息自动化
通过 WhatsApp Web 自动化发送消息、阅读聊天内容并搜索 WhatsApp。
关键:必须确认消息
发送任何 WhatsApp 消息前,必须先获得用户的明确确认。
当用户要求发送消息时:
- 首先向用户展示完整的消息详情:
- 收件人(电话号码或群组)
- 完整消息文本
- 使用的会话
- 询问:“你要我发送这条 WhatsApp 消息吗?”
- 只有在用户明确确认后,才能运行发送命令
- 未经确认,绝不要发送
首次设置
cd ~/.claude/skills/whatsapp-skill
npm install
此操作会安装:
whatsapp-web.js- WhatsApp Web 自动化qrcode-terminal- 用于身份验证的二维码显示
身份验证
首次使用时,需要用手机扫描二维码:
node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js auth
- 终端中会显示二维码
- 在手机上打开 WhatsApp
- 前往设置 → 已关联的设备 → 关联设备
- 扫描二维码
- 会话将被保存,以便日后使用
命令
身份验证与状态
# Authenticate (scan QR)
node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js auth [--session NAME]
# Check status
node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js status [--session NAME]
# Logout
node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js logout [--session NAME]
发送消息(需要确认)
# Send to phone number (include country code, no + or spaces)
node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js send 14155551234 "Hello!" [--session NAME]
# Send to group
node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js send-group GROUP_ID "Hello group!" [--session NAME]
阅读聊天与消息
# List recent chats
node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js chats [--limit N] [--session NAME]
# Get messages from a chat
node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js messages CHAT_ID [--limit N] [--session NAME]
# Search messages
node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js search "query" [--session NAME]
联系人与群组
# List contacts
node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js contacts [--session NAME]
# List groups
node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js groups [--session NAME]
多账户支持
使用 --session 标志切换不同的 WhatsApp 账户:
# Personal account
node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js auth --session personal
# Work account
node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js auth --session work
# Send from specific account
node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js send 14155551234 "Hi" --session work
会话存储在 ~/.claude/skills/whatsapp-skill/sessions/ 中
电话号码格式
始终使用完整的国际格式,不要加 + 号或空格:
- 美国:
14155551234(1 = 国家代码) - 英国:
447911123456(44 = 国家代码) - 印度:
919876543210(91 = 国家代码)
聊天 ID
聊天 ID 由 chats 命令返回:
- 单人聊天:
[email protected] - 群组聊天:
[email protected]
示例
发送一条简单消息
node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js send 14155551234 "Meeting at 3pm today?"
查看最近的聊天
node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js chats --limit 5
阅读来自某个联系人的消息
node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js messages [email protected] --limit 10
搜索内容
node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js search "meeting agenda"
输出
所有命令均以 JSON 格式输出,便于解析。
要求
- Node.js 16+
- npm
- Chrome/Chromium(由 puppeteer 自动安装)
重要说明
- 每个会话对应一部手机:每个 WhatsApp 账户同一时间只能关联到一个会话
- 保持连接:如果手机长时间无法连接互联网,WhatsApp 可能会断开连接
- 速率限制:不要发送垃圾消息,WhatsApp 可能会因可疑活动封禁账户
- 商业账户:个人账户和 WhatsApp Business 账户均可使用
安全说明
- 必须确认消息 - Claude 必须在发送任何消息前获得确认
- 会话数据存储在
~/.claude/skills/whatsapp-skill/sessions/中 - 会话包含身份验证数据,请妥善保管
- 注销会从电脑中删除会话数据(但设备仍会在 WhatsApp 中保持关联,直到你取消关联)
故障排除
没有显示二维码?
- 确保已安装 puppeteer 依赖项:
npx puppeteer browsers install chrome
身份验证一直失败?
- 删除会话文件夹并重新进行身份验证
- 确保手机已连接互联网
消息无法发送?
- 检查电话号码格式(包含国家代码,不含空格或连字符)
- 检查联系人是否已屏蔽你
- 确认手机上的 WhatsApp 仍处于连接状态
评论
支持 Markdown