Install
openclaw skills install wechat-send-cnSend a message to a contact or group via macOS WeChat desktop client. Use when the user asks to send a WeChat message, message someone on WeChat, or reply to a WeChat contact/group. v2.0 auto mode tries fast locate + verify first; falls back to Agent-assisted mode only when verification fails. Requires macOS, WeChat desktop logged in, Accessibility permission, and cliclick. NOT for reading messages, sending files/images.
openclaw skills install wechat-send-cnbrew install cliclick)一条命令完成发送,内含四层递进验证,无需 Agent 手动识别坐标:
bash scripts/wechat_send.sh "<联系人>" "<消息内容>"
【步骤 1】快速定位 (≈4.5s)
激活微信 → 设置窗口 → Cmd+F → 粘贴联系人 → Enter(乐观假设)
↓
【步骤 2】验证联系人 (≈0.7s)
截图标题栏 → Swift Vision OCR → 判断是否进入了正确聊天窗口
↓
【步骤 3】决策分支
├─ 验证通过 (≈99.5%) → 步骤 5:发送消息 ✅ 总计 ≈5.7s
└─ 验证失败 (≈0.5%) → 步骤 4:精确定位降级 ↓
↓
【步骤 4】精确定位降级 (≈3.5s)
ESC → 重新搜索 → 截图下拉框 → 退出(exit 2)
⚠️ 脚本以 exit code 2 退出,Agent 需要接管:
1. 读取 /tmp/wechat_search_dropdown.png
2. 找到目标联系人行的屏幕坐标
3. 调用 --send-only 模式发送
↓
【步骤 5】发送消息 (≈0.5s)
点击输入框 → 粘贴消息 → Enter
截图保存至 /tmp/wechat_verify_title.png,OCR 识别标题栏文字后按优先级判断:
⚠️ 排除法必须优先执行(搜索框内本身含联系人名):
排除法(优先):标题含 "网络查找" / "查找微信号" / "搜索网络结果" → ❌ 失败(确认在搜索结果页)
"搜索" 和 "网络",只保留明确的搜索结果特征词精确匹配:排除通过后,标题包含联系人名字 → ✅ 通过
相似度:逐字符匹配率 ≥ 60% → ✅ 通过
以上均不满足 → ❌ 失败
| Code | 含义 | Agent 动作 |
|---|---|---|
| 0 | 发送成功 | 无需操作 |
| 1 | 致命错误 | 报告错误 |
| 2 | 降级退出 | 读取截图 → 识别坐标 → 调用 --send-only |
当脚本以 exit 2 退出时,Agent 应:
# 1. 读取截图(脚本已输出路径)
# /tmp/wechat_search_dropdown.png
# 2. 分析截图,找到目标联系人行的屏幕坐标 (x, y)
# 坐标换算:截图区域起始于 (50, 50)
# 屏幕坐标 = (50 + 截图像素x, 50 + 截图像素y)
# 3. 调用 --send-only 完成发送
bash scripts/wechat_send.sh "<联系人>" "<消息内容>" --send-only <x>,<y>
仍保留原始两阶段流程,适用于需要完全手动控制的场景:
bash scripts/wechat_send.sh "<联系人>" --search-only
执行:激活微信 → 设窗口 → Cmd+F 搜索 → 截图保存至 /tmp/wechat_search_dropdown.png
Agent 操作:读取截图,找到正确联系人行的屏幕坐标 {x, y}。
坐标换算:截图区域起始于 (50, 50),屏幕坐标 = (50 + 截图像素x, 50 + 截图像素y)。
bash scripts/wechat_send.sh "<联系人>" "<消息内容>" --send-only <x>,<y>
通过 cliclick 点击目标坐标,粘贴消息内容,按回车发送。
# v2.0 自动模式(推荐)
bash scripts/wechat_send.sh "春波" "你好"
# → 自动完成:快速定位 → 验证 → 发送 (≈5.7s)
# → 若验证失败:exit 2,Agent 读截图后调用 --send-only
# v1.0 兼容模式
bash scripts/wechat_send.sh "春波" --search-only
# → 读取 /tmp/wechat_search_dropdown.png,找到坐标 (200, 210)
bash scripts/wechat_send.sh "春波" "你好" --send-only 200,210
| 维度 | v1.0 两阶段 | v2.0 四层验证 |
|---|---|---|
| 联系人定位 | Agent 看截图选坐标 | 自动 Enter + OCR 验证 |
| 耗时(正常) | 20-30s(含思考) | ≈5.7s |
| 耗时(降级) | — | ≈8.5s + Agent 识别 |
| 验证机制 | 无 | 标题栏 OCR |
| 误发风险 | 有 | 零(验证兜底) |
| Agent 参与 | 必须 | 仅 0.5% 降级时 |
osascript read POSIX file 方式粘贴。禁止对中文使用 keystroke。{50,50},尺寸 {1200,800}。{700, 650}。