WeChat Todo Skill 是一个为 OpenClaw 平台开发的技能,用于解析微信数据库并分析聊天记录中的待办事项、关键事件和截止日期。该技能支持 macOS 和 Windows 平台,能够帮助用户快速获取聊天摘要和待办事项,提高工作效率。
- 多平台支持:兼容 macOS 和 Windows 操作系统
- 会话筛选:通过群名、微信用户昵称(或备注名、微信号)获取对应会话
- 时间范围选择:支持今日、昨日、本周或指定日期范围和时间段的分析
- 智能分析:自动提取聊天摘要、关键事件、Todo待办事项以及DDL等信息
- 模糊匹配:当会话名称存在多个匹配结果时,提供选择界面
- JSON输出:支持输出标准化的JSON结果,方便OpenClaw平台集成
- Python 3.8+
- SQLite3
- 正则表达式
- 日期时间处理
- 克隆项目到本地
git clone https://github.com/windycn/wechat-todo-skill.git
cd wechat-todo-skill- 安装依赖
pip install -r requirements.txt-
准备微信数据库
-
Windows:技能会自动完成以下步骤:
- 检查微信版本:确保微信版本为 4.x
- 检查管理员权限:确保以管理员权限运行
- 安装 wechat-decrypt 工具:自动克隆并安装
https://github.com/ylytdeng/wechat-decrypt工具 - 查找数据库:自动查找微信数据目录,支持新旧路径(新路径:
C:\Users\用户名\AppData\Roaming\Tencent\xwechat\radium\users\*\) - 解密数据库:自动运行 wechat-decrypt 工具解密数据库
-
macOS:技能会自动完成以下步骤:
- 检查微信版本:确保微信版本为 4.x
- 退出微信:执行
killall WeChat - Ad-hoc 签名:执行
sudo codesign --force --deep --sign - /Applications/WeChat.app(需要输入密码) - 重新打开微信:重新启动并登录微信
- 安装 wechat-decrypt 工具:自动克隆并安装
https://github.com/ylytdeng/wechat-decrypt工具 - 提取密钥:执行
cd ~/.qclaw/workspace/wechat-decrypt && sudo ./find_all_keys_macos - 查找数据库:自动查找微信数据目录,支持新旧路径
- 解密数据库:自动运行 wechat-decrypt 工具解密数据库
注意:如果自动流程失败,你可以手动执行上述步骤,然后将解密后的
decrypted目录复制到项目根目录 -
你可以通过自然语言对话让 OpenClaw 自主安装此技能:
-
在 OpenClaw 聊天界面中,发送消息:
- 例如:
请帮我安装XXX目录下微信待办分析技能 - 或:
我需要安装 XX/wechat-todo-skill 技能
- 例如:
-
OpenClaw 会理解你的请求并自动安装技能
-
安装完成后,你可以直接使用技能:
- 例如:
请分析项目组的今日聊天记录 - 或:
帮我提取昨天的待办事项
- 例如:
-
在 OpenClaw 中,使用命令
@install skill https://github.com/windycn/wechat-todo-skill -
OpenClaw 会自动克隆项目、安装依赖并注册技能
-
安装完成后,你可以直接使用技能:
- 例如:
@wechat-todo analyze "项目组" today - 或:
@wechat-todo help获取帮助信息
- 例如:
如果你已经下载或克隆了项目到本地,可以通过以下步骤安装到 OpenClaw:
- 克隆或下载项目到本地:
git clone https://github.com/windycn/wechat-todo-skill.git
cd wechat-todo-skill- 安装依赖:
pip install -r requirements.txt- 在 OpenClaw 中,使用命令安装本地技能:
@install skill /path/to/wechat-todo-skill
- 安装完成后,你可以直接使用技能:
- 例如:
@wechat-todo analyze "项目组" today - 或:
@wechat-todo help获取帮助信息
- 例如:
# 基本使用(分析今日聊天记录)
python skill/main.py --session "会话名称"
# 分析指定日期范围的聊天记录
python skill/main.py --session "会话名称" --date-range "2026-01-01,2026-01-31"
# 分析指定日期范围和时间段的聊天记录
python skill/main.py --session "会话名称" --date-range "2026-01-01,2026-01-31" --time-range "09:00,18:00"
# 使用自定义数据库目录
python skill/main.py --db-dir "/path/to/decrypted" --session "会话名称"today:今日yesterday:昨日this_week:本周
wechat-todo-skill/
├── skill/ # OpenClaw skill目录
│ ├── __init__.py
│ ├── main.py # 主入口
│ ├── SKILL.md # OpenClaw技能配置
│ ├── scripts/ # 脚本目录
│ │ ├── __init__.py
│ │ ├── db_parser.py # 数据库解析
│ │ ├── session_manager.py # 会话管理
│ │ ├── config.py # 配置管理
│ │ ├── analyzer.py # 聊天分析
│ │ └── decryptor.py # 解密模块
├── .gitignore
├── README.md
└── requirements.txt
- 数据库连接:连接到解密后的微信数据库
- 会话选择:根据用户输入的关键词搜索并选择会话
- 消息获取:根据指定的时间范围获取消息
- 数据分析:分析消息内容,提取摘要、关键事件、待办事项和截止日期
- 结果输出:输出分析结果,包括文本和JSON格式
- 该技能需要访问解密后的微信数据库,确保你有权限访问这些数据
- 首次运行时可能需要较长时间来解析数据库
- 对于大型聊天记录,分析可能需要一些时间
- 该技能仅在本地运行,不会上传任何数据到云端
- 如果遇到任何问题,请查阅
skill/troubleshooting.md文件获取详细的故障排除指南
该技能采用了多种性能优化策略:
-
数据库处理:
- 使用 wechat-decrypt 工具的批量解密功能
- 利用工具的缓存机制,避免重复解密
- 优先处理消息数据库
-
分析处理:
- 使用集合存储关键词,提高查找速度
- 预编译正则表达式,提高匹配速度
- 增量分析,避免重复处理数据
- 三级缓存机制,减少数据库查询
- 对于大型聊天记录,采用分批处理
- 优先处理最近的消息,提高响应速度
- 利用多线程并行处理多个会话
-
内存优化:
- 限制单次处理的消息数量
- 使用生成器模式处理大型数据集
- 及时释放不再需要的内存
============================================================
分析会话: 项目组
日期范围: 2026-04-03 至 2026-04-03
时间段: 09:00 至 18:00
============================================================
📊 聊天摘要:
本次聊天共有 120 条消息。 主要讨论了:项目进度、下周计划、技术方案 等内容
🔍 关键事件:
1. [2026-04-03 09:15:32] 讨论了项目的当前进度和遇到的问题
2. [2026-04-03 10:30:15] 确定了下周的工作计划和任务分配
3. [2026-04-03 14:20:45] 讨论了新功能的技术实现方案
✅ 待办事项:
1. [2026-04-03 09:20:15] 完成用户界面设计
2. [2026-04-03 10:35:20] 编写API文档
3. [2026-04-03 14:25:30] 测试新功能
⏰ 截止日期:
1. [2026-04-03 10:40:10] 界面设计需要在周五前完成 (截止: 周五)
2. [2026-04-03 14:30:20] API文档必须在下周一生成 (截止: 下周一)
============================================================
JSON结果:
{
"summary": "本次聊天共有 120 条消息。 主要讨论了:项目进度、下周计划、技术方案 等内容",
"key_events": [
{
"timestamp": "2026-04-03 09:15:32",
"content": "讨论了项目的当前进度和遇到的问题",
"event_type": "讨论"
},
...
],
"todos": [
{
"timestamp": "2026-04-03 09:20:15",
"content": "完成用户界面设计",
"status": "pending"
},
...
],
"ddls": [
{
"timestamp": "2026-04-03 10:40:10",
"content": "界面设计需要在周五前完成",
"deadline": "周五"
},
...
]
}
欢迎提交 Issue 和 Pull Request 来改进这个项目。
MIT License