plugins/steroids/skills/wechat-desktop/SKILL.md
Read, navigate, summarize, and reply to WeChat desktop chats on macOS using computer-use MCP. Use for 微信, 群消息, 未读消息, 看群, 读消息, checking unread chats, reading a specific group, viewing shared images, OCR-heavy messages, or pushing WeChat summaries elsewhere.
npx skillsauth add kanlac/agent-steroids wechat-desktopInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
通过 computer-use MCP 操作 macOS 微信客户端,读取并总结群聊消息。
本插件包含一个 PostToolUse hook(guard-payload-size.sh),在每次工具调用后检查会话 transcript 大小。当接近 20MB API 限制时(阈值 16MB),会提醒运行 /compact 压缩上下文。
这是 Claude Code 的一个已知 bug(anthropics/claude-code#8092)的临时解决方案:computer-use 截图会快速累积 payload 大小,超过 20MB 后会话直接报错失效。这个 hook 能在接近限制时提前预警,避免工作丢失。
request_access 申请 WeChat 权限open_application 打开微信(若未在前台)微信聊天界面通过气泡颜色和位置区分发送者:
总结时必须准确区分用户和群友的消息,不要把群友的消息当成用户的,也不要把用户的消息归给别人。
在左侧会话列表中识别未读标识:
70):普通未读计数左侧列表文字较小,用 zoom 放大侧边栏区域来辨认群名和角标。
进入群聊后,点击聊天区域右上角的 「xxx new message(s)」 按钮,一步跳到最早的未读消息。不要手动向上滚动去找未读起点。
微信的滚动灵敏度很低,单次 scroll(100) 几乎不移动。必须用 computer_batch 打包多次滚动:
5 x scroll(100) ≈ 1 屏(适合逐屏精读)
10 x scroll(100) ≈ 2-3 屏(适合快速浏览)
20 x scroll(100) ≈ 5+ 屏(适合跳过旧消息)
每次 batch 结束后截图读取内容。通过检查前后截图的消息重叠来确认没有漏读——上一屏底部的消息应该出现在新截图的顶部。如果完全没有重叠,说明滚动量过大,下次减小。
唯一可靠的方法:滚动后截图,与上一张对比,内容完全一样 = 到底了。
以下方法都不可靠,不要使用:
微信聊天中的图片以缩略图显示,信息不完整。
截图中的小字和中文容易被视觉模型误读。当需要精确阅读消息内容时,使用 PaddleOCR 脚本辅助。
检查 venv 是否存在,不存在则创建(约需 1-2 分钟下载模型和依赖):
VENV=$HOME/.local/share/paddleocr-venv
if [ ! -f "$VENV/bin/python" ]; then
uv venv --python 3.12 "$VENV"
uv pip install --python "$VENV/bin/python" \
paddlepaddle==3.2.0 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
uv pip install --python "$VENV/bin/python" \
paddleocr --index-url https://pypi.tuna.tsinghua.edu.cn/simple
fi
首次运行 OCR 时 PaddlePaddle 会自动下载模型到 ~/.paddlex/(约 80MB),后续运行直接使用缓存。
screencapture -x /tmp/wechat-ocr.png 截取当前屏幕zoom 确定聊天内容区域在截图中的像素坐标(retina 2x,display 坐标 × 2)--crop 裁剪到聊天区域:$HOME/.local/share/paddleocr-venv/bin/python \
${CLAUDE_PLUGIN_ROOT}/skills/wechat-desktop/scripts/ocr_chat.py \
/tmp/wechat-ocr.png \
--crop x1,y1,x2,y2 \
2>/dev/null
输出为逐行 JSON,按从上到下排序:
{"y": 123, "x": 45, "text": "你好", "score": 0.98}
结合截图中的气泡位置(右绿=用户,左白=群友)理解每条消息的发送者。
读完一个群后,立即整理总结。总结模板:
**群名** (人数, 未读数)
时间跨度: x/x ~ x/x
1. [话题类别] — 概要描述
2. [话题类别] — 概要描述
...
关注有实质内容的消息(讨论、公告、链接、图片内容),略过纯表情互动和系统通知(入群、转账提示)。
多个群读完后,汇总成一条推送,按群分段,末尾附「与用户相关的行动项」(如即将到来的活动、需要回复的消息)。
tools
Turn a YouTube link into a polished single-file bilingual (Chinese + original) transcript reading page. Use when the user gives a YouTube URL and asks to "转录" "做转录稿" "生成转录页面" "中英对照" "bilingual transcript" "transcribe this video", or wants a readable HTML transcript with clickable timestamps, chapter navigation, highlighted key points, and proper-noun annotations. Fetches captions + chapters via yt-dlp, the agent translates and curates, then a script renders the HTML.
development
Use when a user asks the agent to "learn" from a file, example, correction, failed workflow, or feedback and persist that learning into skills or agent instructions. Guides semantic skill refactoring: extract the transferable behavior, update the owning skill so it becomes clearer and easier to execute, avoid append-only note dumping, and decide when not to create new reference files.
development
以「配置即代码」的方式管理、调试 Clash Verge Rev(mihomo 内核)的配置,并实现不依赖 GUI 的配置更新。涵盖:哪些字段扩展脚本能改 / 不能改(external-controller、secret、端口被内核接管)、改了为什么不生效、如何在纯命令行下让配置重新生成并生效、mihomo external controller 这个内核 RESTful API 的用法、用 external-ui 自托管 Web 面板、以及判断流量「走没走代理 / 命中哪条规则」的排查方法。只要用户在改 Clash Verge / mihomo 的扩展脚本(script)、扩展配置(merge)、订阅规则、external-controller / secret / 端口、或抱怨「clash 配置改了不生效」「规则不命中」「远程连不上面板」「想自动化更新代理配置」,就应该用这个 skill。
data-ai
Configure and manage Telegram-connected Claude agents with heartbeat scheduling on macOS. Use when the user wants to "set up Telegram agent", "add heartbeat", "configure Telegram channel", "管理 Telegram agent", "配置心跳", "添加定时任务", "Telegram 多 agent", "配置 Telegram", "添加 Telegram agent", "给 Telegram bot 创建身份", "设置定时任务", "新增定时任务", "每天X点执行Y", "schedule a task", "run this automatically", "set up a cron job", or encounters Telegram polling conflicts, 409 Conflict, file upload failures through proxy, or needs to add recurring/periodic automated task execution for Claude agents.