Install
openclaw skills install wechat-message基于桌面端UI自动化的微信操作工具,支持Windows/macOS双平台,可实现微信窗口管理、联系人操作、消息收发、聊天记录提取及自动化智能回复.
openclaw skills install wechat-message基于桌面端UI自动化的微信操作工具,支持Windows/macOS双平台,可实现微信窗口管理、联系人操作、消息收发、聊天记录提取及自动化智能回复。
⚠️ 重要声明:本工具仅用于个人合法合规的微信操作自动化,请勿用于批量群发、骚扰他人等违规场景。使用前请确保遵守微信用户协议及相关法律法规。
# 基础核心依赖
pip install pyautogui pillow opencv-python numpy pyperclip requests psutil
# Windows 额外依赖
pip install pywin32
# macOS 额外依赖
pip install pyobjc-framework-Quartz pyobjc-core pyobjc
All requests require the CHAT_API_KEY in the Authorization header:
Authorization: Bearer YOUR_API_KEY
Environment Variable: Set your API key as CHAT_API_KEY:
export CHAT_API_KEY="YOUR_API_KEY"
py wechat.py start
py wechat.py activate
py wechat.py search_and_send --contact 张三 --message "你好,这是自动发送的消息"
py wechat.py get_history --contact 李四 --limit 10
# 基础用法
py wechat.py auto_process --api_key "你的AI接口密钥"
# 自定义轮询次数和API地址
py wechat.py auto_process --polling_times 20 --api_url "http://127.0.0.1:8000/api/chat/message" --api_key "密钥"
py wechat.py help
| 命令 | 功能 | 示例 |
|---|---|---|
start | 启动微信客户端 | py wechat.py start |
activate | 激活并最大化微信窗口 | py wechat.py activate --title 微信 |
search_and_send | 搜索联系人并发送消息 | py wechat.py search_and_send --contact 张三 --message 您好 |
get_history | 获取指定联系人聊天记录 | py wechat.py get_history --contact 李四 --limit 15 |
auto_process | 自动轮询联系人并智能回复 | py wechat.py auto_process --polling_times 10 --api_key xxx |
help | 查看帮助信息 | py wechat.py help |
| 功能 | 说明 |
|---|---|
| 进程检测 | 自动检测微信是否正在运行 |
| 自动启动 | 查找微信安装路径并启动,支持多路径适配 |
| 窗口激活 | 定位微信窗口并激活,支持最大化、前置显示 |
| 区域定位 | 自动识别微信界面各功能区域(输入框、发送按钮等) |
| 功能 | 说明 |
|---|---|
| 精准搜索 | 通过搜索框定位联系人,支持剪贴板输入避免输入失败 |
| 列表点击 | 按索引点击联系人列表,支持边界检查 |
| 状态记忆 | 记录当前打开的联系人,避免重复操作 |
| 功能 | 说明 |
|---|---|
| 安全输入 | 支持剪贴板粘贴和逐字符输入,避免输入异常 |
| 消息发送 | 精准点击发送按钮,支持自然鼠标移动轨迹 |
| 记录提取 | 通过OCR和右键复制提取聊天记录,区分收发方向 |
| 新消息检测 | 自动识别最新收到的消息,过滤自己发送的内容 |
| 功能 | 说明 |
|---|---|
| 轮询检测 | 循环检查多个联系人的新消息 |
| AI接口集成 | 调用自定义AI接口获取回复内容 |
| 批量发送 | 支持多条回复依次发送,可自定义发送间隔 |
| 异常处理 | 失败自动重试,错误日志完整记录 |
activate命令会自动生成config/wechat_regions.json| 参数 | 功能 | 示例 |
|---|---|---|
--contact | 指定联系人名称 | --contact 张三 |
--message | 发送的消息内容 | --message "您好" |
--limit | 聊天记录获取数量 | --limit 10 |
--polling_times | 自动轮询次数 | --polling_times 20 |
--api_url | AI接口地址 | --api_url http://localhost:8000/api/chat/message |
--api_key | AI接口密钥 | --api_key "your-api-key" |
--title | 微信窗口标题 | --title "微信" |
platform模块区分Windows/macOS,适配不同的窗口管理API| 模块 | 功能 |
|---|---|
WeChatRegion | 数据类,定义微信界面所有区域的参数和坐标 |
WeChatAutomation | 核心类,封装所有自动化操作方法 |
_safe_click | 安全点击方法,模拟人类操作行为 |
_locate_message_bubbles | 消息气泡定位,基于OpenCV识别消息区域 |
auto_process_contacts | 自动化主方法,实现轮询和智能回复 |
wechat_automation.log(包含详细操作记录)debug/(存储截图等调试信息)错误:无法激活微信窗口
→ 确认微信已运行并登录,或先执行start命令启动微信
→ macOS需授予辅助功能权限
错误:点击位置不准确
→ 确保微信窗口已最大化
→ 删除config/wechat_regions.json重新生成区域配置
→ 检查微信界面布局是否为默认样式
错误:剪贴板操作失败
→ Windows:安装pywin32库(pip install pywin32)
→ macOS:确保终端有剪贴板访问权限
错误:消息发送成功但对方未收到
→ 检查输入框是否真正获得焦点
→ 增加发送后的等待时间(修改代码中time.sleep参数)
错误:AI接口调用失败 → 检查API地址和密钥是否正确 → 确认接口支持POST请求,且返回格式符合要求 → 检查网络连接和接口权限
微信界面更新后工具失效
→ 更新WeChatRegion中的尺寸参数
→ 重新运行activate生成新的区域配置
修改auto_process_contacts调用处的contact_list参数:
contact_list = ["客户A", "客户B", "工作群", "家人群"]
修改_safe_click中的move_duration参数(单位:秒):
# 减慢移动速度(更接近人类)
self._safe_click(x, y, move_duration=0.8)
# 加快移动速度(提高效率)
self._safe_click(x, y, move_duration=0.2)
修改WeChatRegion中的尺寸参数:
# 调整侧边栏宽度
sidebar_width: int = 65 # 默认60
# 调整联系人高度
contact_item_height: int = 75 # 默认70
schedule库实现定时操作)本工具仅用于学习和研究目的,请勿用于商业或违规用途。使用本工具产生的一切后果由使用者自行承担,作者不承担任何责任。