微信 → 适配器 → 统一消息 → SQLite → 日 / 周历史档案 → 可解释分析 → 微语工作台当前版本默认是只接收、只读分析:历史导入不会创建回复任务,发送接口保留为预览 / 测试能力并由运行时硬闸门保护。
我是微语,一个住在你电脑里的微信情报工作台。我不替你发消息,也不把聊天变成黑盒;我做的是把散落在会话里的话,按日期、来源和证据整理成可阅读的日报。你可以从总览看见今天的脉络,在信息流和会话里回到原文,在工作台里筛出待核实事项,也可以让我先把语音变成文字,再用可回链的 AI 分析辅助判断。我的原则很简单:先保留上下文,再给出结论;先让你看见证据,再决定下一步。重要内容留在本机,主动权始终在你手里。
- 特性
- 微语自述
- 产品发布会海报
- 产品预览
- 下载与发布包
- 功能详解
- 安装要求
- 桌面版快速开始
- 桌面版新手教程
- 微语工作台
- 桌面端
- 规则与 AI
- API 与 Codex 插件
- 数据与隐私
- 项目结构
- 开发与测试
- 当前边界
- License
wechatauto_db:读取当前微信 4.x 本地加密数据库的可读消息分片;wxauto4:保留为显式回退适配器;- Hook HTTP:保留
QueryDB/status、SendTextMsg和D0003回调适配层; - 统一消息模型覆盖聊天、发送者、消息类型、群聊标记、媒体键和证据 ID;
- 消息去重、任务状态、重试、发送尝试、错误与确认结果统一落入本地 SQLite。
- 支持今天、近 7 天和自定义日期范围;
- 跨所有可读会话与加密消息分片读取历史,不因重复运行产生重复消息;
- 按
Asia/Shanghai解释日期边界,内部使用半开区间; - 记录同步范围、进度和最近一次运行状态,便于排查缺口。
- 消息量、活跃会话、小时分布和主题概览;
- 重点线索、行动候选、事件时间窗和风险提示;
- 分析结论保留原消息证据 ID,可回链到具体消息;
- 规则支持关键词、正则、聊天/发送者、消息类型、时间段和时区。
- 浏览器工作台绑定
127.0.0.1:8765,展示档案、摘要、线索和行动候选; - 消息档案支持筛选、搜索和证据回链;
- Tauri 2 桌面端复用已有本地服务,服务未运行时可启动自己的后端进程;
- 桌面端不开放前端 shell 权限,不传入
--live,退出时只关闭自己启动的后端。
plugins/wechat-bridge 提供本地 MCP 工具,调用同一套 loopback API,适合在 Codex 中查询状态、消息和分析结果。插件不绕过后端的只读边界。
下面是微语本地工作台的实际界面截图。截图中的聊天名称、联系人和部分正文已经模糊处理;图片只用于展示产品布局,不代表仓库会提交任何运行时聊天数据。
| 页面 | 说明 |
|---|---|
| 总览 / 日报主线:选择日期范围后查看消息量、会话数、重点候选、待处理项和语音转写进度,并阅读“今天发生了什么”。查看原图 | |
| 日报内容页:把高信号消息排成可阅读的版面,保留主题、判断、标签和证据附录。查看原图 | |
| 小事:保留低信号但可能有后续价值的日常消息,既不把它们混进主线,也不让它们悄悄消失。查看原图 | |
| 会话:按聊天查看原始消息、图片/文件/语音类型、媒体路径和会话统计,支持回到原始证据。查看原图 | |
| 工作台 / 分析:集中查看待处理候选、事件主线、主题脉络、当前判断和分析指标;默认只读,不会因为出现候选就自动发送消息。查看原图 |
微语 0.1.4 的 Windows 发布包已经放在本仓库的 GitHub Release v0.1.4 中。由于安装包和便携包都超过 GitHub 普通仓库单文件限制,它们作为 Release 资产提供下载,下面的链接可以直接跳转:
- 下载 Windows 安装包:运行安装向导,安装后从开始菜单或桌面快捷方式启动;
- 下载 Windows 便携包:完整解压后运行文件夹内的
wei-daily-desktop.exe; - 查看 Release 页面:查看版本说明、文件大小和其它校验信息。
下载后可按下面的 SHA256 值核对文件完整性:
| 文件 | SHA256 |
|---|---|
weiyu-0.1.4-windows-installer.exe |
100FFFA7E7C965B55B07771CAFE082A3A342DC782637156B1258874F2974D80E |
weiyu-0.1.4-windows-portable.zip |
1FA52D8E19967DFEB1D4E2F090BE298713C548F4E856B4DA8912052671D9F974 |
微语不是一个单纯的聊天记录查看器,而是一条“采集—归档—筛选—解释—复核”的本地工作流。它把消息放进有日期、有来源、有证据的上下文里,让用户先看到值得注意的内容,再随时回到原始消息核对。
wechatauto_db负责读取当前微信 4.x 本地数据库中的可读消息分片;wxauto4作为显式回退适配器保留,适合需要通过微信窗口获取消息的环境;- Hook HTTP 适配层保留
QueryDB/status、SendTextMsg和D0003回调接口,便于接入已有本地桥接服务; - 不同来源最终都会转换成统一消息模型,包含聊天、发送者、时间、消息类型、群聊标记、媒体键和证据 ID;
- 消息去重、同步进度、任务状态、重试记录、错误和确认结果都写入本地 SQLite,避免同一批历史消息重复出现。
项目的安全边界也很明确:主路径不下载 DLL、不注入微信、不替换微信安装目录文件,接收和分析默认只访问本机数据与 loopback 服务。
工作台支持“今天”“近 7 天”和自定义日期范围。日期按照 Asia/Shanghai 解释,内部使用半开区间,因此跨午夜和跨天同步时不容易出现边界重复或漏读。
每次同步都会记录范围、进度和最近一次运行状态。适配器会跨可读会话与数据库分片查找历史消息,并通过稳定的消息标识去重。这样既可以每天只抓当天,也可以在第一次使用时补齐近一周的上下文。
日报页面会把消息按信号强弱组织成几层内容:
- 主线:当天最值得先读的主题、变化和事件;
- 重点候选:可能需要关注、跟进或进一步判断的消息;
- 事件主线:把同一件事在不同时间、不同会话里的消息串起来;
- 主题脉络:按关键词、聊天、发送者和消息类型观察讨论集中在哪里;
- 小事:保留低信号但可能有后续价值的日常消息;
- 证据附录:为每一条判断保留原始消息证据 ID,支持回到档案核对。
日报不是把模型输出直接当成结论。固定规则先进行本地筛选和打标,分析层计算消息量、活跃会话、小时分布、主题和候选项;如用户主动开启 AI,AI 只做二次整理,且必须引用本地证据编号,无法回链的结论会被丢弃。
会话页提供从摘要回到证据的路径:左侧按聊天查找,中间查看消息正文和图片、文件、语音等类型,右侧查看会话统计与相关状态。媒体字段保留本地媒体键或路径,方便在本机进一步核对。
这一步很重要:日报里的“重点”只是帮助排序,用户可以在会话页确认上下文、前后消息和原始发送者,再决定是否把它当成真正的事项。会话浏览本身不会发送消息。
工作台把待处理候选、事件主线、主题脉络和分析指标放在同一个视图中。每个候选都应带有来源、时间、规则或分析原因以及证据链接,便于判断“为什么会出现”和“下一步是否需要处理”。
“待处理”“已确认”等状态只代表本地工作台里的整理状态,不等于已经向微信联系人发送了内容。当前版本的 /api/send-text 固定返回 403;预览、重试和分析接口也受到服务端健康检查与只读闸门约束。
规则文件支持关键词、正则表达式、聊天、发送者、消息类型、时间段和时区。推荐的处理顺序是:
- 先用规则缩小消息范围并打标签;
- 再按日期、会话和消息类型查看候选;
- 回到原始证据确认上下文;
- 只有确实需要时,手动确认 AI 二次分析;
- 检查 AI 结果是否能回链到本地证据。
这样可以把隐私暴露和分析成本控制在最小范围。AI 不参与自动回复,不写入消息库,不进入回复队列,也不会因为分析完成而自动触发微信动作。
Tauri 2 桌面端复用同一套本地服务:已有服务运行时直接连接 127.0.0.1:8765,未运行时再启动自己的后端进程。桌面端不开放前端 shell 权限,不传入 --live,退出时只关闭自己启动的进程。
plugins/wechat-bridge 则把状态、近期消息、规则分析和预览能力暴露给 Codex。它调用的仍然是同一套本地 loopback API,因此权限边界、只读模式和发送硬闸门不会因为换了入口而改变。
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 10 / 11 |
| 微信 | 已登录,并保持主窗口打开 |
| WebView2 | Windows 桌面端运行时需要;便携包启动前请确认已安装 |
普通用户使用 Windows 安装包或便携包时,不需要安装 Python、Node.js、Rust,也不需要在 PowerShell 中启动后端。安装包会启动随包提供的本地服务;便携包则要求 wei-daily-desktop.exe 和 wei-daily-backend.exe 保持在同一文件夹。
只有从源码开发或重新构建发布包时,才需要 Python 3.9–3.12、Node.js 18+、Rust stable-msvc 和 Microsoft C++ Build Tools。相关命令放在桌面端和开发与测试章节。
当前开发环境以微信 4.1.12.26 为主。微信版本、数据库布局和 Hook 行为变化时,适配器可能需要重新验证。
微语发布时提供两种 Windows 形态,普通用户二选一即可。
双击 微语_0.1.4_x64-setup.exe,按安装向导完成安装,再从开始菜单或桌面快捷方式启动“微语”。安装包会把桌面主程序和后端 sidecar 一起安装,用户不需要单独寻找或启动后端 exe。
构建产物默认位于:
desktop/src-tauri/target/release/bundle/nsis/微语_0.1.4_x64-setup.exe
解压 微语-便携版-0.1.4-win-x64.zip,保持整个文件夹结构不变,然后双击文件夹里的 wei-daily-desktop.exe。便携包不需要运行安装程序,也不需要 Python。
便携包的正确结构是:
微语-便携版-0.1.4-win-x64/
├─ wei-daily-desktop.exe # 用户双击这个桌面主程序
├─ wei-daily-backend.exe # 内置本地服务,必须与主程序同目录
├─ 使用说明.md
├─ SHA256SUMS.txt
└─ version.txt
不要直接双击 wei-daily-backend.exe,也不要只复制 wei-daily-desktop.exe 出来运行;主程序会自动按需拉起同目录的后端 sidecar。
便携包构建产物默认位于:
output/portable/微语-便携版-0.1.4-win-x64.zip
output/portable/微语-便携版-0.1.4-win-x64/
桌面端内部仍使用 127.0.0.1:8765 作为主程序与内置后端之间的本机回环通信地址,但这是桌面程序自动管理的内部服务:普通用户不需要打开 PowerShell、不需要执行 Python 命令、不需要手动打开浏览器或“启动端口”。双击桌面 exe 后,程序会等待服务就绪,再自动进入工作台;退出时只关闭自己启动的后端。
如果提示端口被占用,通常是已有的微语实例或旧的本地服务仍在运行。先关闭其它微语窗口,再重新启动;不要通过启动第二个后端来解决。
下面是面向拿到安装包或便携包后的第一次使用流程。源码命令属于开发者流程,不是普通用户的安装步骤。
- 登录 Windows 版微信;
- 保持微信主窗口打开,不要在首次同步过程中退出微信;
- 确认需要查看的聊天已经在本机微信中可读。
- 安装包:运行
微语_0.1.4_x64-setup.exe,安装后使用快捷方式启动; - 便携包:完整解压
微语-便携版-0.1.4-win-x64.zip,只运行其中的wei-daily-desktop.exe。
两种方式不要混用同一份正在运行的后端。便携包中的两个 exe 必须同目录,压缩包不能只解出其中一个文件。
双击桌面主程序后,先看到“正在等待本机服务”属于正常现象。桌面端会自动启动随包后端并检查健康状态,准备完成后自动打开微语工作台。
此时不需要:
- 手动运行
wechat_bridge run; - 手动打开 http://127.0.0.1:8765;
- 打开或配置 Node.js、Python 虚拟环境;
- 直接启动
wei-daily-backend.exe。
- 在工作台选择“今天”;
- 点击“抓取当前范围”,等待同步状态变为完成;
- 查看消息总量、会话数和同步状态,确认数据已经进入本地工作台;
- 回到“日报主线”,阅读“今天发生了什么”;
- 再打开证据附录或“会话”,核对重点候选对应的原始消息;
- 当“今天”运行正常后,再尝试“近 7 天”或 729A 定义日期范围。
第一次同步可能需要更久,因为后端要扫描可读数据库分片并建立本地索引。同步期间不要重复点击启动程序,也不要移动便携包文件夹。
推荐顺序是“总览 → 日报主线 → 证据附录 → 会话 → 工作台 / 分析 → 小事”。日报里的重点候选是帮助排序的结果,不是自动决策;需要处理的事项应先回到原始消息确认上下文。
固定规则可以直接使用,不配置 AI 也不影响日报和历史档案。AI 分析和语音识别都是可选能力;二者相互独立,语音需要先完成转写,转写文本才会作为 AI 分析的输入。
AI 是对本地规则结果的二次分析,不是自动回复机器人,也不会替你发送微信消息。第一次使用时按下面的流程配置:
- 打开工作台右上角的设置抽屉,找到“AI 分析 / 手动调用”;
- 填写
API Key。如果使用 OpenAI 兼容服务,再按服务商要求填写Base URL和模型名;使用默认 OpenAI 接口时Base URL可以留空; - 点击保存设置,确认 AI 状态从“未配置”变为“已配置”;
- 先完成一次数据同步,再在“日报主线”或“工作台 / 分析”中点击“运行 AI 分析”;
- 阅读摘要、重点发现和行动候选,并通过每条结果附带的本地证据 ID 回到原始消息核对上下文。
配置完成后,日报更新可以按当前设置刷新 AI 结果,也可以随时手动运行。没有 API Key 时,页面仍会使用本地规则生成日报;AI 按钮不可用属于正常现象。API Key 只应填写在应用设置中,不要写进 README、截图或提交到 Git 仓库。
隐私边界:AI 二次分析发送的是经过脱敏的候选文本和证据编号,不是整份本地数据库;结果也必须能够回链到本地证据。涉及敏感内容时,仍应先确认你使用的 AI 服务商和接口符合自己的数据要求。
语音识别不是 AI 分析的替代品。微语会优先使用微信消息中已经存在的本地转写;没有本地转写时,才可以使用配置好的豆包 ASR 进行云端识别。
- 打开设置抽屉,找到“语音识别 / 豆包 ASR”;
- 打开“允许自动转写”,填写服务商控制台提供的
APP ID和Access Token;Secret Key按你的服务商账户要求填写; - 点击保存设置。当前版本最稳妥的使用方式是对具体语音消息按需点击“转写语音”,而不是期待启动程序后自动扫描全部历史语音;
- 在“会话”或消息流中找到语音消息,点击消息行上的“转写语音”,等待按钮变为转写结果;
- 转写完成后,消息行会显示文字、时长和置信度。再运行一次 AI 分析,AI 才会把这段转写文本纳入候选内容。
如果消息本身带有微信原生转写,处理会优先在本地完成;否则应用会在本地把微信语音解码为识别所需的音频,再调用豆包 ASR。启用云端识别意味着音频会发送给豆包服务,请在确认服务商数据处理方式后再填写凭据。语音没有成功转写时,先确认消息确实是语音、微信仍处于登录状态、APP ID 与 Access Token 已保存,并检查网络;消息行出现“重试转写”即可重新发起。
直接关闭微语桌面窗口即可。桌面端只会关闭它自己启动的后端,不会强制关闭用户此前已经运行的其它本地服务。便携包中的数据库和运行数据按桌面端约定写入 Windows 应用数据目录,不会写进安装目录或要求把数据放在 exe 旁边。
| 现象 | 处理方式 |
|---|---|
| 双击后一直等待服务 | 确认微信已登录且主窗口打开;关闭其它微语实例后重新启动。 |
| 提示端口被占用 | 关闭旧的微语桌面程序或其它本地服务,不要再手动启动第二个后端。 |
| 便携包提示找不到后端 | 重新完整解压 zip,确认 wei-daily-desktop.exe 与 wei-daily-backend.exe 在同一目录,不要只复制主程序。 |
| 页面空白或 WebView2 缺失 | 安装 Microsoft Edge WebView2 Runtime;安装包可重新运行,便携包需要系统先具备 WebView2。 |
| 同步完成但没有消息 | 确认微信登录状态、日期范围和聊天可读性,再重新抓取当前范围。 |
| AI 按钮不可用或显示未配置 | 在设置抽屉的“AI 分析 / 手动调用”中填写 API Key 并保存;不配置 AI 不影响本地规则日报。 |
| AI 分析失败 | 检查 API Key、Base URL、模型名和网络;先缩小日期范围,分析完成后再通过证据 ID 核对原文。 |
| 语音消息没有转写按钮 | 重新同步当前范围,确认该条消息是微信语音而不是普通文件或图片。 |
| 语音转写失败 | 打开“允许自动转写”,确认 APP ID 与 Access Token 已保存并可访问豆包 ASR;网络恢复后点击“重试转写”。 |
| 语音已经转写但 AI 没有引用 | 转写完成后重新点击“运行 AI 分析”;AI 不会把尚未转写的语音当作文字证据。 |
| 想确认文件是否损坏 | 在便携包目录执行 Get-FileHash wei-daily-desktop.exe -Algorithm SHA256,并与 SHA256SUMS.txt 对照。 |
- 启动微信并确认登录状态;
- 双击安装包创建的微语快捷方式,或双击便携包中的
wei-daily-desktop.exe; - 等待桌面端自动启动本地后端并打开工作台;
- 在工作台选择日期范围并执行“抓取当前范围”;
- 先查看同步状态,再阅读重点线索和行动候选;
- 通过证据 ID 回到消息档案核对原文;
- 需要长期保留的结论在工作台外另行整理,数据库仍只作为本地运行数据。
GET /api/status
GET /api/messages?limit=50
GET /api/messages?start=YYYY-MM-DD&end=YYYY-MM-DD&limit=50000
GET /api/tasks?limit=50
GET /api/rules
GET /api/accounts
GET /api/insights?start=YYYY-MM-DD&end=YYYY-MM-DD
GET /api/chats?start=YYYY-MM-DD&end=YYYY-MM-DD
GET /api/sync-status
GET /api/ai-status
POST /api/auto-reply {"enabled": false}
POST /api/preview {"content": "..."}
POST /api/sync {"limit": 100}
POST /api/sync-range {"start":"YYYY-MM-DD","end":"YYYY-MM-DD","scope":"all"}
POST /api/ai-analysis {"start":"YYYY-MM-DD","end":"YYYY-MM-DD","limit":120,"confirm":true}
POST /api/retry {"task_id": 1}
POST /api/send-text {"content": "...", "confirm": true}
服务只绑定 127.0.0.1,不会返回 API Key。当前只读模式下,/api/send-text 固定返回 403;/api/preview 不创建任务,历史同步不会创建回复任务。
桌面封装位于 desktop/,使用 Tauri 2。发布版会随桌面主程序携带 PyInstaller sidecar:若 127.0.0.1:8765/api/status 已可用,则直接复用;否则自动启动随包后端。这个地址只用于本机回环通信,普通用户不需要手动打开。
cd desktop
npm install
npm run icons
npm run dev可通过 WEI_DAILY_PROJECT_ROOT 指定 Python 项目根目录;默认解析为桌面端目录的上两级。
cd desktop
npm install
npm run build构建流程会生成品牌图标、构建 wei-daily-backend sidecar,再生成 NSIS 安装包。构建产物、sidecar 和 Tauri target 均不会提交到仓库。
NSIS 安装包默认位于:
desktop/src-tauri/target/release/bundle/nsis/微语_0.1.4_x64-setup.exe
先完成一次 npm run build,再回到项目根目录执行:
powershell -ExecutionPolicy Bypass -File .\desktop\scripts\build-portable.ps1 -LaunchTest脚本会生成完整的便携包目录和 zip:
output/portable/微语-便携版-0.1.4-win-x64/
├─ wei-daily-desktop.exe
├─ wei-daily-backend.exe
├─ 使用说明.md
├─ SHA256SUMS.txt
└─ version.txt
output/portable/微语-便携版-0.1.4-win-x64.zip
-LaunchTest 会启动便携版主程序做短时存活检查;脚本只会重建明确的 output/portable 目录,不会删除项目源码或运行数据。
本节中的 PowerShell 命令面向源码开发和重新构建发布包;普通用户使用桌面安装包或便携包时不需要执行这些命令。
复制示例后按需修改:
Copy-Item config\rules.example.json config\rules.json启动时指定规则文件:
.\.venv\Scripts\python.exe -m wechat_bridge run `
--rules-file config\rules.json `
--chat "文件传输助手" `
--dashboard规则按文件顺序匹配,命中第一条后停止。布尔字段必须使用 JSON true/false,字符串 "false" 会被拒绝。
AI 是手动二次筛选,不是自动回复。使用前设置:
$env:OPENAI_API_KEY = "你的 API Key"然后在工作台中手动确认 AI 分析。服务会把有限字段和证据编号交给配置的 AI 服务,结果必须回链到本地证据 ID;无法回链的结论会被丢弃。分析结果不写入消息库、不入回复队列,也不会自动发送微信。
插件目录为 plugins/wechat-bridge。它提供:
wechat.statuswechat.recent_message 8819 swechat.enable_auto_replywechat.disable_auto_replywechat.reply_previewwechat.retry_messagewechat.send_text
插件调用仍受服务端 dry-run、健康检查和目标闸门约束;工具名称不代表当前版本已经开放自动发送。
data/保存本地数据库、同步状态和 QA 浏览器 profile,已整体加入.gitignore;tmp/、output/、wechatauto_logs/保存运行日志、截图、PDF 和安装包等本地产物,不提交;- 仓库不包含微信数据库、聊天记录、Cookie、浏览器登录数据、API Key 或个人配置;
- AI 分析只有在用户手动确认后才会把有限候选文本发送到配置的 AI 服务;
- 普通接收、历史同步、规则分析和桌面端均只访问本机服务;
- 发现安全问题请参阅
SECURITY.md。
wei-daily/
├─ src/wechat_bridge/ # Python 服务、适配器、存储、分析与 Web 工作台
│ ├─ adapters/ # wechatauto_db / wxauto4 / Hook HTTP
│ └─ web/ # 本地控制台前端与品牌资源
├─ desktop/ # Tauri 2 桌面端与 PyInstaller sidecar 构建脚本
│ ├─ src/ # 桌面等待页与本地服务启动逻辑
│ └─ src-tauri/ # Rust 容器、权限和安装包配置
├─ plugins/wechat-bridge/ # Codex 本地 MCP 插件
├─ tests/ # 规则、同步、适配器、分析和 API 测试
├─ docs/ # 设计评审、实现资料与产品预览图
│ └─ images/product-preview/ # README 中的界面截图
├─ config/rules.example.json # 可复制的规则配置示例
├─ pyproject.toml
├─ CHANGELOG.md
├─ CONTRIBUTING.md
├─ SECURITY.md
└─ LICENSE
安装开发依赖并运行测试:
.\.venv\Scripts\python.exe -m pip install -e .
.\.venv\Scripts\python.exe -m pytest -q
.\.venv\Scripts\python.exe -m pip check测试覆盖规则和时区、AI 缺失配置、消息去重、任务恢复、跨分片数据库适配器、历史同步、可解释分析、只读发送闸门、控制台 API、媒体和语音流水线等。
提交前请确认:
git status中没有data/、tmp/、output/、浏览器 profile 或日志;- 没有
.env、私钥、Cookie、数据库或安装包; - 公开到其他环境的日志和截图已经脱敏;
- 相关测试和
pip check已通过。
更完整的修改约定见 CONTRIBUTING.md。
- 当前版本的主运行路径是接收与分析,不是无人值守自动回复;
- 微信
4.1.12.26的 Hook DLL 匹配尚未在本项目中验证,不能把公开的其他版本 Hook 目标视为兼容; - 项目不会下载 DLL、注入微信或替换微信安装目录文件;
wxauto4作为回退适配器保留,实际可用性取决于本机微信窗口和依赖版本;- 微信数据库、媒体和语音格式属于第三方应用内部实现,升级微信后需要重新运行诊断和测试。
把零散消息整理成今天真正有用的几行。 🗞️