claw-codes/wx4py/wx4-skill
Claude Code and agent skill by claw-codes/wx4py
- community
Checking that the SKILL.md file is still in the repository.
微信自动化操作 skill,用于帮助用户快速完成微信消息群发、文件发送、群管理、聊天记录获取、多群监听、AI 自动回复等自动化任务。当用户需要批量发送微信消息、管理微信群、获取聊天记录、监听群消息、或接入 AI 群聊机器人时使用此 skill。
Install
npx vskill@latest install claw-codes/wx4py/wx4-skillSKILL.md
微信自动化操作 Skill
⚠️ 使用前必读:安装检查
在执行任何操作前,必须先确认 wx4py 库已安装。
步骤1:检查是否已安装
步骤2:如果未安装,执行安装
步骤3:验证安装成功
重要提示:
- 如果用户提示
ModuleNotFoundError: No module named 'wx4py',说明未安装 - 必须先安装库再执行后续操作
- 安装只需要一次,后续无需重复
概述
本 skill 基于 wx4py 库,帮助用户通过 Python 代码自动化控制 Windows 微信客户端,完成重复性的消息发送、群管理等任务。
适用场景:
- 批量群发通知到多个群或联系人
- 定时发送文件、图片、消息
- 获取和分析聊天记录
- 管理群公告、群昵称、免打扰等设置
- 监听多个群聊消息,并在被 @ 时自动回复
- 接入 OpenAI 兼容接口或自定义 AI 回调,构建群聊机器人
- 自动化日常微信操作
前置要求:
- Windows 系统
- 微信 PC 客户端已安装并登录(Qt 版本,已测试 4.1.7.59、4.1.8.29)
- Python >=3.9
- 终端、编辑器、脚本文件统一使用 UTF-8 编码环境,避免中文消息、群名、文件名出现乱码
编码环境建议:
- Python 源码文件保存为 UTF-8
- PowerShell / 终端优先使用 UTF-8 编码
- 读写文本、JSON、Markdown 文件时显式指定
encoding='utf-8' - 如果要输出中文日志或生成中文文件内容,优先验证终端和编辑器都已切换到 UTF-8
核心功能
1. 消息发送
发送单条消息到联系人或群
批量群发消息
2. 文件发送
发送单个文件
批量发送多个文件
3. 聊天记录获取
获取指定时间范围的聊天记录
返回格式:
4. 群管理
获取群成员列表
修改群昵称
获取群昵称
设置消息免打扰
置顶/取消置顶聊天
修改群公告(如果修改不成功,很大概率是因为不是管理员的原因)
5. 群聊监听与 AI 自动回复
监听多个群聊消息
只在被 @ 时自动回复
监听指定群消息并转发给指定联系人或群
适用场景:
- 监听告警群,把消息转发给值班联系人
- 监听业务群,把消息同步到另一个群
- 针对不同来源群,配置不同的联系人或群作为目标
使用内置 AIClient 接入 OpenAI 兼容接口
使用自定义 AI 或业务系统
实现说明:
- 每个群优先打开独立聊天窗口,适合同时监听多个群。
- 自动回复通过发送队列串行执行,避免多个群同时回复时抢占窗口。
- 本库发送的消息会自动记录,避免机器人监听到自己的回复后再次触发。
使用模式
推荐:使用上下文管理器
手动连接管理
实用脚本示例
示例1:定时群发通知
示例2:收集昨天的聊天记录并保存
示例3:批量发送文件到多个群
注意事项
操作限制
- 仅支持 Windows 系统
- 需要微信客户端已登录
- 操作期间不要手动操作微信窗口
- 受微信 UIA 限制,聊天记录无法获取发送者姓名
最佳实践
- 使用上下文管理器确保连接正确释放
- 批量操作时添加适当延迟,避免操作过快
- 重要操作前先测试小范围验证
- 群聊机器人优先使用
reply_on_at=True,避免普通群消息触发自动回复 - AI 回调耗时会影响监听延迟,大规模群监听时建议使用响应更快的模型或业务接口
- 捕获异常并记录日志
- 需要系统查看方法说明时,优先参考
docs/guide/API_GUIDE.md
异常处理
工作流程指导
当用户请求微信自动化任务时,按以下步骤操作:
- 理解需求
- 确认目标(联系人/群组)
- 确认操作类型(发消息/发文件/获取记录/管理设置)
- 确认是否批量操作
- 编写脚本
- 使用上述示例作为模板
- 添加必要的错误处理
- 考虑操作延迟和频率限制
- 验证和测试
- 先用小范围测试(如"文件传输助手")
- 确认脚本正确运行后再扩大范围
- 执行和反馈
- 运行脚本并观察结果
- 提供清晰的执行反馈
- 必要时保存日志
快速参考
| 操作 | 方法 | 示例 | |
|---|---|---|---|
| 发消息给联系人 | chat_window.send_to(target, message) | wx.chat_window.send_to("张三", "Hi") | |
| 发消息到群 | chat_window.send_to(target, message, target_type='group') | wx.chat_window.send_to("工作群", "Hi", target_type='group') | |
| 批量群发 | chat_window.batch_send(targets, message, target_type) | wx.chat_window.batch_send(["群1", "群2"], "Hi", target_type='group') | |
| 发送文件 | chat_window.send_file_to(target, file_path) | wx.chat_window.send_file_to("张三", r"C:\file.pdf") | |
| 获取聊天记录 | chat_window.get_chat_history(target, target_type, since) | wx.chat_window.get_chat_history("工作群", 'group', 'today') | |
| 获取群成员 | group_manager.get_group_members(group_name) | wx.group_manager.get_group_members("工作群") | |
| 获取群昵称 | group_manager.get_group_nickname(group_name) | wx.group_manager.get_group_nickname("工作群") | |
| 设置群昵称 | group_manager.set_group_nickname(group_name, nickname) | wx.group_manager.set_group_nickname("工作群", "小张") | |
| 消息免打扰 | group_manager.set_do_not_disturb(group_name, enable) | wx.group_manager.set_do_not_disturb("工作群", True) | |
| 置顶聊天 | group_manager.set_pin_chat(group_name, enable) | wx.group_manager.set_pin_chat("工作群", True) | |
| 修改群公告 | group_manager.modify_announcement_simple(group_name, content) | wx.group_manager.modify_announcement_simple("工作群", "新公告") | |
| 监听/处理多个群聊 | process_groups(groups, handlers, block=True) | wx.process_groups(["群1"], [handler], block=True) | |
| 监听群消息并转发 | process_groups(groups, [ForwardRuleHandler(rules)], block=True) | wx.process_groups(["群1"], [ForwardRuleHandler(rules)], block=True) | |
| 自动回复群聊 | AsyncCallbackHandler(reply_func, auto_reply=True) | AsyncCallbackHandler(reply, auto_reply=True, reply_on_at=True) | |
| AI 自动回复 | AIResponder(ai_client, context_size=8) | AsyncCallbackHandler(AIResponder(ai, context_size=8, reply_on_at=True), auto_reply=True) |
常见问题
Q: 脚本运行时提示找不到微信窗口? A: 确保微信已打开并登录,窗口不要最小化。
Q: 批量发送时部分失败? A: 检查目标名称是否正确,建议在每次发送间添加延迟。
Q: 中文消息、群名或导出文件出现乱码? A: 先确认终端、编辑器、Python 源文件和读写文件逻辑都使用 UTF-8;写文件时显式传入 encoding='utf-8',避免依赖系统默认编码。
Q: 可以获取图片和语音消息吗? A: 目前主要支持文本消息,图片和语音的完整获取受限于微信 UIA。
Q: AI 自动回复会回复所有群消息吗? A: 不会,推荐传入 reply_on_at=True。普通消息只监听,只有群消息 @ 当前群昵称时才会触发回复。
Q: 可以不用内置 AIClient,接入自己的 AI 服务吗? A: 可以。process_groups() 接收任意 handler;最简单的方式是使用 AsyncCallbackHandler 包装你自己的回调,回调返回字符串即可入队发送。
Q: 多个群同时触发回复会抢占窗口吗? A: 自动回复会进入发送队列串行执行,避免多个独立聊天窗口同时发送导致焦点抢占。
Q: 脚本可以在后台运行吗? A: 微信窗口需要在前台才能进行 UI 自动化操作。
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingwx4-skill/SKILL.md
Popularity
- Repository stars
- 751
- Repository forks
- 206
- 7-day trend score
- 33
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/claw-codes/wx4py/wx4-skill)