微信Mac版消息发送
v1.0.0在微信 Mac 版发送消息。当用户提到"微信发消息"、"发微信"、"给 XXX 发微信"时触发。
Security Scan
OpenClaw
Suspicious
high confidencePurpose & Capability
技能声明是在“微信 Mac 版发送消息”,SKILL.md 的步骤确实通过 GUI 自动化(open、osascript、鼠标点击、键盘事件)实现该目的,功能上相符。但是清单里没有声明这是 macOS 专用,也没有声明需要外部工具(SKILL.md 使用了 cliclick),这与技能目的不一致并且会误导安装/运行环境判断。
Instruction Scope
运行时指令会控制系统 UI(System Events)、设置与粘贴剪贴板内容、在特定屏幕坐标点击并发送消息;这超出简单 API 调用,要求系统“辅助功能/可访问性”权限。指令本身没有提示需要这些权限、没有要求用户确认发送,也未处理可能的隐私风险(如当前剪贴板内容被覆盖或误发送)。它还建议调用另一个技能(person-relation-manager),但未说明授权边界。
Install Mechanism
该技能为 instruction-only、无 install spec(本身风险较低),但依赖外部二进制 cliclick(在 SKILL.md 中直接调用)且没有在元数据或 requirements 中声明或提供安装方式。缺乏对外部二进制来源/安装步骤的说明是潜在风险。
Credentials
元数据未请求环境变量或凭据,与功能实现(本地 GUI 自动化)一致。没有要求访问 unrelated 云凭据或键名。
Persistence & Privilege
技能未设置 always:true,也未声明修改其他技能或系统配置。允许自主调用(平台默认)但这本身并未与其他高权限要求组合出现。
What to consider before installing
这项技能通过在 macOS 上模拟点击与键盘事件来发送微信消息——在概念上可行,但有几个需要注意的点:
- 平台与依赖不一致:SKILL.md 使用 cliclick 和 osascript(macOS),但技能清单没有标注“仅 macOS 可用”或声明需要安装 cliclick。请确认你将把技能用于 macOS,并且在信任且来自官方来源的前提下自行安装 cliclick。
- 权限与隐私:运行将需要 macOS 的辅助功能/可访问性权限(System Events 控制 UI),并会设置/粘贴剪贴板。允许这类权限会让技能能够控制应用并替换剪贴板内容;如果你有敏感剪贴板数据或不希望自动发送消息,应谨慎。
- 操作风险:SKILL.md 使用硬编码坐标与节拍(sleep),在不同屏幕布局或缩放下可能误点或发送给错误联系人。建议在非生产环境中先手动测试并要求每次发送前有显式确认步骤。
- 可信度与改进建议:仅在你能接受本地 GUI 自动化的风险且愿意手动验证依赖/权限时安装。更安全的改动包括:在元数据中声明 macOS 限制和所需二进制,提供 cliclick 的可信安装说明,添加显式“发送前确认”步骤,并在 SKILL.md 中说明需要授予的 macOS 权限及其影响。
如果你 want,我可以帮你列出一个更安全的安装/运行检查清单或把 SKILL.md 中的隐式步骤改成带确认的流程。Like a lobster shell, security has layers — review code before you run it.
latest
微信 Mac 版消息发送
微信界面结构
┌─────────┬──────────────────┬─────────────┐
│ 功能区 │ 搜索框 联系人列表 │ 聊天区域 │
│ 聊天 │ [🔍] │ │
│ 联系人 │ [小+号] │ 输入框... │
│ 收藏 │ 联系人1 │ │
│ 朋友圈 │ 联系人2 │ │
│ ... │ ... │ │
└─────────┴──────────────────┴─────────────┘
执行流程
Step 1: 打开微信
open /Applications/WeChat.app
sleep 1
Step 2: 点击搜索框并输入
// 点击第二列搜索框 (约坐标 180, 45)
cliclick c:180,45
osascript -e 'set the clipboard to "CONTACT_NAME"'
osascript -e 'tell application "System Events" to keystroke "v" using command down'
sleep 0.3
Step 3: 按 Enter 直接选中最上面的搜索结果
osascript -e 'tell application "System Events" to keystroke return'
sleep 0.5
Step 4: 直接输入消息(第三列已聚焦)
osascript -e 'tell application "System Events" to keystroke "MESSAGE_CONTENT"'
sleep 0.2
Step 5: 按 Enter 发送
osascript -e 'tell application "System Events" to keystroke return'
关键坐标
| 元素 | 坐标 |
|---|---|
| 搜索框 | 180, 45 |
| 搜索结果(单个) | 180, 90 |
| 聊天输入框 | 350, 560 |
注意事项
- 必须先点击搜索框再输入,否则中文字符无法输入
- Enter 搜索后直接选中第一个结果,不需要双击
- 输入消息前不需要再次点击输入框,Enter 后第三列自动聚焦
- 使用
keystroke而非剪贴板输入消息 - 搜索时用名字的部分字符即可匹配
性能
- 目标总耗时:3-5 秒
联系人配合
发送前可先调用 person-relation-manager 查询微信昵称:
- 微信名 ≠ 真实姓名
- 优先使用已记忆的微信昵称
Comments
Loading comments...
