wechat-message

Other

基于桌面端UI自动化的微信操作工具,支持Windows/macOS双平台,可实现微信窗口管理、联系人操作、消息收发、聊天记录提取及自动化智能回复.

Install

openclaw skills install wechat-message

微信桌面自动化工具

基于桌面端UI自动化的微信操作工具,支持Windows/macOS双平台,可实现微信窗口管理、联系人操作、消息收发、聊天记录提取及自动化智能回复。

⚠️ 重要声明:本工具仅用于个人合法合规的微信操作自动化,请勿用于批量群发、骚扰他人等违规场景。使用前请确保遵守微信用户协议及相关法律法规。

支持平台

  • ✅ Windows (支持微信Windows版所有主流版本)
  • ✅ macOS (支持微信macOS版)
  • ❌ Linux (暂不支持)

前提条件

1. 环境依赖安装

# 基础核心依赖
pip install pyautogui pillow opencv-python numpy pyperclip requests psutil

# Windows 额外依赖
pip install pywin32

# macOS 额外依赖
pip install pyobjc-framework-Quartz pyobjc-core pyobjc

2. 权限配置

  • Windows:无需额外权限,确保微信已安装并登录
  • macOS:授予终端/IDE"辅助功能"和"屏幕录制"权限: 系统设置 → 隐私与安全 → 辅助功能 → 添加终端/IDE 系统设置 → 隐私与安全 → 屏幕录制 → 添加终端/IDE

3. 微信准备

  • 确保微信已安装并完成登录
  • 建议将微信窗口最大化运行(提升定位准确性)
  • 关闭微信的"消息免打扰"等可能影响界面显示的设置

4. 自动回复的Authentication

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

核心功能说明

1. 微信进程与窗口管理

功能说明
进程检测自动检测微信是否正在运行
自动启动查找微信安装路径并启动,支持多路径适配
窗口激活定位微信窗口并激活,支持最大化、前置显示
区域定位自动识别微信界面各功能区域(输入框、发送按钮等)

2. 联系人操作

功能说明
精准搜索通过搜索框定位联系人,支持剪贴板输入避免输入失败
列表点击按索引点击联系人列表,支持边界检查
状态记忆记录当前打开的联系人,避免重复操作

3. 消息处理

功能说明
安全输入支持剪贴板粘贴和逐字符输入,避免输入异常
消息发送精准点击发送按钮,支持自然鼠标移动轨迹
记录提取通过OCR和右键复制提取聊天记录,区分收发方向
新消息检测自动识别最新收到的消息,过滤自己发送的内容

4. 自动化回复

功能说明
轮询检测循环检查多个联系人的新消息
AI接口集成调用自定义AI接口获取回复内容
批量发送支持多条回复依次发送,可自定义发送间隔
异常处理失败自动重试,错误日志完整记录

配置说明

界面区域配置

  • 首次运行activate命令会自动生成config/wechat_regions.json
  • 包含微信界面各区域的坐标和尺寸参数
  • 不同平台配置自动区分,避免混用

自定义参数

参数功能示例
--contact指定联系人名称--contact 张三
--message发送的消息内容--message "您好"
--limit聊天记录获取数量--limit 10
--polling_times自动轮询次数--polling_times 20
--api_urlAI接口地址--api_url http://localhost:8000/api/chat/message
--api_keyAI接口密钥--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

扩展功能

  • 可添加文件发送功能(点击文件按钮→选择文件→确认发送)
  • 可添加图片识别功能(结合OCR提取图片中的文字)
  • 可添加定时发送功能(结合schedule库实现定时操作)

免责声明

本工具仅用于学习和研究目的,请勿用于商业或违规用途。使用本工具产生的一切后果由使用者自行承担,作者不承担任何责任。