# Wechat Sender

> 微信消息自动发送。使用 peekaboo 工具操作窗口，结合 Agent-Eye 获取实时屏幕截图进行视觉理解。触发条件：用户提到"发微信"、"给xxx发消息"、"微信自动发送"等。

- Skill: `dvcrn/wechat-sender` (Agent Skill)
- Install (CLI): `npx skillmds@latest add dvcrn/wechat-sender`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dvcrn/wechat-sender/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: dvcrn (https://skillmd.com/u/dvcrn)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/dvcrn/wechat-sender

---


# WeChat Sender

## 准备工作

### 1. 依赖项目

**Agent-Eye** - 屏幕捕获服务
- 仓库：https://github.com/noir-hedgehog/Agent-eye
- 功能：实时屏幕截图、100px 网格叠加、鼠标坐标显示
- 启动方式：
  ```bash
  # 服务端
  eye-server --port 8080 --region 0,0,1200,900
  
  # Python Agent（需要配置 image key）
  cd crates/eye
  python -c "
  from agent import Agent
  agent = Agent(server_url='http://localhost:8080', interval=1.5, grid_size=100, show_mouse=True, region='0,0,1200,900')
  agent.run()
  "
  ```

### 2. 启动检查清单

- [ ] 确认微信已登录且保持后台运行
- [ ] 启动 Agent-Eye 服务端：`eye-server --port 8080`
- [ ] 启动 Python Agent（无需额外配置）
- [ ] 验证截图功能：`curl http://localhost:8080/snapshot.png -o test.png`
- [ ] 验证图像理解：使用 OpenClaw 内置的 image tool 分析截图

### 3. 图像理解说明

图像理解功能由 OpenClaw 内置的 `image` 工具提供，无需额外配置 Agent-Eye。Agent-Eye 负责捕获屏幕截图，`image` 工具负责理解图像内容。

微信消息自动发送技能。可以灵活组合以下能力，但执行前需要先思考流程（checklist）。

## 原子能力

| 能力 | 命令 | 说明 |
|------|------|------|
| 聚焦窗口 | `peekaboo window focus --app "微信"` | 聚焦微信窗口（某些app有防录屏限制，需要先聚焦） |
| 调整窗口 | `peekaboo window set-bounds --app "微信" --x 0 --y 0 --width 1200 --height 900` | 调整窗口位置和大小，避免防录屏限制 |
| 截图 | The-Eye: `curl http://localhost:8080/snapshot.png` 或 `/usr/sbin/screencapture -R0,0,1200,900` | 建议用 The-Eye 获取实时截图 |
| 图像理解 | `image` tool | 分析截图内容，查找联系人位置 |
| 切换联系人 | `peekaboo hotkey --keys "shift,down" --app "微信"` | 模拟 shift+↓ 切换选中联系人 |
| 粘贴文字 | `peekaboo paste --text "{message}" --app "微信"` | 复制文字到剪贴板并粘贴 |
| 发送消息 | `peekaboo hotkey --keys "cmd,return" --app "微信"` | 模拟 cmd+return 发送消息 |
| **搜索联系人** | `peekaboo hotkey --keys "cmd,f" --app "微信"` | **推荐！** 激活搜索框，比滑动列表快 |

## 视觉上下文说明

**使用 The-Eye 截图时：**
- 100px 网格：帮助定位界面元素的精确坐标。每个格子是 100x100 像素
- 鼠标准星坐标 (x, y)：当前鼠标位置，十字准星+坐标标签
- 截图分辨率：默认捕获整个屏幕，可在 The-Eye 启动时用 `--region` 参数指定区域

**图像理解时的参考信息：**
- 网格坐标可以帮助定位按钮、联系人等元素的具体位置
- 鼠标坐标指示当前关注的区域
- 微信界面特征：左侧联系人列表、右侧聊天窗口、底部输入框

## 微信 UI 探索发现

### 左侧边栏图标（从到到下）
1. 个人头像
2. 聊天（消息）- 绿色选中
3. 通讯录 - 小人头图标
4. 收藏 - 立方体图标
5. 朋友圈 - 圆环快门图标
6. 视频号 - 漏斗图标
7. 搜一搜/看一看 - 地球仪图标
8. 小程序 - 层级点图标
9. 手机连接 - 手机图标
10. 更多（设置）- 三横线图标

### 推荐联系人查找方式
**方式1：搜索（推荐）**
1. `peekaboo hotkey --keys "cmd,f" --app "微信"` 激活搜索框
2. `peekaboo paste --text "联系人名字" --app "微信"` 输入搜索词
3. 点击搜索结果进入聊天

**方式2：滑动列表**
- 使用 `shift+up/down` 切换联系人
- 适合联系人顺序已知的情况

## 执行流程（Checklist 思考模式）

**在执行每个操作前，先思考：**
1. 当前状态是什么？
2. 下一步需要做什么？
3. 需要什么工具/能力？
4. 可能的风险是什么？

### 推荐流程

```
1. [ ] 聚焦微信窗口 + 调整大小
     → peekaboo window focus --app "微信"
     → peekaboo window set-bounds --app "微信" --x 0 --y 0 --width 1200 --height 900

2. [ ] 选择找联系人方式
     → 搜索（推荐）：Cmd+F → 输入名字 → 点击结果
     → 滑动列表：shift+up/down

3. [ ] 获取截图（优先用 The-Eye）
     → curl http://localhost:8080/snapshot.png -o /tmp/wechat.png
     
4. [ ] 分析截图（视觉理解）
     → 使用 image tool，询问：
       - 当前选中的联系人是谁？
       - 目标联系人在列表第几个？
       - 界面是否有异常？

5. [ ] 发送消息
     → peekaboo paste --text "消息内容" --app "微信"
     → peekaboo hotkey --keys "cmd,return" --app "微信"

6. [ ] 确认发送成功
     → 截图 + image tool 确认消息气泡出现
```

## 灵活运用原则

- **搜索是最高效的**：用 Cmd+F 搜索，比滑动列表快很多
- **不必完全按顺序**：如果已经知道联系人名字，直接搜索
- **选择合适的截图方式**：
  - The-Eye 实时流：适合需要鼠标坐标的场景
  - 直接截图：适合只需要静态界面的场景
- **遇到问题灵活处理**：
  - 如果搜索没结果，尝试滑动列表
  - 如果切换失败，可以重新截图确认状态
  - 如果发送失败，尝试重新聚焦窗口

## 示例

发送"最近怎么样"给"宝宝星"：

**方式1：搜索（推荐）**
1. 聚焦 + 调整窗口
2. Cmd+F 激活搜索
3. paste "宝宝星"
4. 点击搜索结果
5. paste 消息 + Cmd+Return
6. 确认

**方式2：滑动列表**
1. 聚焦 + 调整窗口
2. 截图确认位置
3. shift+down × 7
4. paste 消息 + Cmd+Return
5. 确认

## 注意事项

- 某些 app（微信、企业微信等）有防录屏限制，聚焦窗口+调整大小可以绕过
- 窗口调整到 1200x900 后，截图只需截取该区域
- The-Eye 服务需要先启动：`eye-server --port 8080` + `eye agent start`
- 每次按键操作间隔 0.3 秒更稳定
- 遇到错误可以尝试重新聚焦窗口，不要盲目重试

