mcpField
W
whatsapp-skill

whatsapp-skill

github.com/idanbeck生产力1496 次安装2 天前更新
代码仓库

关于 whatsapp-skill

通过 WhatsApp Web 自动化进行消息发送和聊天访问的命令行 Skill。它支持读取聊天、搜索消息和管理多个账户会话;发送消息前必须获得明确确认。

主要功能

  1. 01向联系人和群组发送消息
  2. 02列出聊天并读取消息
  3. 03搜索消息
  4. 04管理联系人和群组
  5. 05使用命名账户会话
  6. 06发送前要求明确确认

适用场景

  1. 01通过命令行查看近期聊天
  2. 02查找符合查询内容的消息
  3. 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 消息前,必须先获得用户的明确确认。

当用户要求发送消息时:

  1. 首先向用户展示完整的消息详情:
    • 收件人(电话号码或群组)
    • 完整消息文本
    • 使用的会话
  2. 询问:“你要我发送这条 WhatsApp 消息吗?”
  3. 只有在用户明确确认后,才能运行发送命令
  4. 未经确认,绝不要发送

首次设置

cd ~/.claude/skills/whatsapp-skill
npm install

此操作会安装:

  • whatsapp-web.js - WhatsApp Web 自动化
  • qrcode-terminal - 用于身份验证的二维码显示

身份验证

首次使用时,需要用手机扫描二维码:

node ~/.claude/skills/whatsapp-skill/whatsapp_skill.js auth
  1. 终端中会显示二维码
  2. 在手机上打开 WhatsApp
  3. 前往设置 → 已关联的设备 → 关联设备
  4. 扫描二维码
  5. 会话将被保存,以便日后使用

命令

身份验证与状态
# 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 命令返回:

示例

发送一条简单消息
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