微信 → 适配器 → 统一消息 → SQLite → 日 / 周历史档案 → 可解释分析 → 微语工作台v0.1.4 起,微语的产品边界永久只读:只接收、只同步、只分析,不自动回复、不手动发送,也不把发送能力作为未来功能规划。
我是微语,一个住在你电脑里的微信情报工作台。我不替你发消息,也不把聊天变成黑盒;我做的是把散落在会话里的话,按日期、来源和证据整理成可阅读的日报。你可以从总览看见今天的脉络,在信息流和会话里回到原文,在工作台里筛出待核实事项,也可以让我先把语音变成文字,再用可回链的 AI 分析辅助判断。我的原则很简单:先保留上下文,再给出结论;先让你看见证据,再决定下一步。重要内容默认留在本机,但这不等于“没有风险”或“永远不会有数据离开电脑”;请先看下面的边界说明。
- 有封号风险,而且对主力账号应按较大风险处理。 微语不是微信官方产品。读取、同步或解析微信本地数据库,使用非官方适配器,或探测微信内部功能,都可能触发微信风控,存在功能限制、临时封禁乃至永久封禁风险。项目不能保证“安全”“不会封号”;不能因为默认只读就把账号安全交给项目背书。
这里的“较大风险”不是“只要启动微语就一定封号”,也不是一个可以负责任地编成百分比的概率;微信没有公开足够的风控规则和命中数据。它是对不同暴露面的分级判断。最直接的风险来自“让第三方程序代替微信客户端读取或操作微信”,而不是 data/wechat_bridge.db 这个微语自己的本地 SQLite 文件本身:
| 风险面 | 当前代码实际做的事 | 风险判断 | 默认状态 |
|---|---|---|---|
| 非官方读取本地数据库 | wechatauto_db 依赖 wechatauto-replica 打开微信 xwechat_files 下的加密消息分片,读取消息表、联系人和媒体索引,并按轮询监听变化 |
本地读取未必会立刻产生服务器端封号信号,但它涉及微信内部数据库格式、解密和未公开数据结构;这是广义逆向/平台合规风险的主要来源之一 | Windows 发布包默认使用;只读 |
| 窗口自动化 | wxauto4 连接正在运行的微信窗口,通过监听或轮询聊天内容;它还保留 SendMsg 发送路径 |
让第三方程序控制微信窗口,自动化特征比单纯本地文件读取更明显;一旦叠加发送,账号风险明显上升 | 回退适配器,非桌面默认 |
| Hook / 注入链路 | hook_http 适配器对接已经运行的本地 Hook 服务,接收 D0003 消息回调,并预留 SendTextMsg 调用 |
Hook DLL、进程注入、协议/回调解析是技术和法律暴露面最高的一层。微语本身不下载或注入 DLL,但使用外部 Hook 并不会因此变成官方接口 | 非默认,需外部 Hook |
| 真正发送微信消息 | 只有同时打开 --live、--enable-sending,通过确认、聊天白名单和目标闸门后,才会调用可见客户端或 Hook 的发送方法 |
这是最直接的封号风险来源:频率、重复内容、批量触达、异常目标和无人值守行为都会把风险从“读取内部数据”升级为“自动化操作账号” | 发布包默认关闭 |
| AI / ASR 外发 | 手动 AI 分析发送候选文本;豆包转写发送选中的语音音频 | 首要是隐私和第三方服务留存风险,不等同于封号风险;如果再与自动化发送链路组合,才会叠加账号风险 | 用户主动开启 |
粗略地说,账号风险暴露面通常是:真实发送/自动化 > Hook 或注入 > 非官方数据库解析 > 单纯本地规则分析。这不是微信官方的概率排序,而是基于操作权限和平台可见性的风险分层。尤其要注意:只读数据库读取可能不产生明显的网络发送行为,所以不能断言“读取一次就会封号”;但它仍可能违反平台规则、触发客户端完整性/异常行为判断,或在后续升级、适配器组合、Hook 和发送功能启用后放大风险。
当前 Windows 发布包的默认后端不带 --live 或 --enable-sending,普通工作台不会替用户发消息;但它确实会读取微信本地数据库,这是“只读”而不是“无风险”。如果用户自行启用 --live、--enable-sending、--allow-other-chats、wxauto4、Hook 服务或 UIA 热激活,风险边界就已经高于默认发布路径,不应再按普通只读工具理解。
同步会读取微信本地数据。即使微语当前只做只读分析,也不能排除平台风控、账号限制或其他合规风险。请仅在确有需要时同步,避免短时间内连续点击或失败后立即反复重试;作为保守的初版使用建议,可将手动历史同步控制在每天 2–3 次以内并尽量分散。这个频率不是安全阈值,也不能保证不会封号;请遵守微信平台规则,并谨慎评估是否使用主力账号。
设置中的“自动拉取新消息”只是读取微语本地工作台,不会主动发起历史同步;真正扫描微信历史数据库的是日期范围区域的“同步”操作。两者在界面上分开控制,但只读并不等于无风险。
- “不上传完整微信数据库”具体是指默认不会把数据库文件或整库自动发到项目作者的服务器。 默认的接收、历史同步、规则分析和桌面端通信在本机完成。只有你主动打开外部服务时,数据才会按下面的方式离开本机:
- 手动确认 AI 二次分析后,发送给你配置的 AI 服务的是有限候选集:候选消息文本(每条最多 360 个字符)、最多 8 条同会话邻近片段(每条最多 240 个字符)、时间、会话名、发送者名/别名、“我 / 群聊”标记、规则标签、候选状态、主题/事件摘要、统计信息和证据编号;默认最多 120 条候选,接口上限为 200 条。代码会替换常见的
wxid/gh_标识、本地路径、MD5、邮箱和手机号,但这不是匿名化,聊天原文、昵称、会话名和时间仍可能识别个人。 - 没有微信原生本地转写、且你开启豆包 ASR 并点击转写时,微语会在本地解码选中的微信语音,然后把这段音频发送给豆包;这不是“只发送文字”。是否保存、如何处理由服务商的协议和隐私政策决定。
- 如果你主动使用 Codex 插件的消息读取工具,返回的消息内容会交给调用该插件的客户端/模型;这不属于默认本地工作台的边界,应按调用方的数据策略另行判断。
- 项目不会因为普通本地同步就自动上传完整微信数据库、Cookie、微信登录态或整个媒体目录;但你自行配置的 AI、ASR、Hook 或其他外部端点不在这个保证范围内。
- 手动确认 AI 二次分析后,发送给你配置的 AI 服务的是有限候选集:候选消息文本(每条最多 360 个字符)、最多 8 条同会话邻近片段(每条最多 240 个字符)、时间、会话名、发送者名/别名、“我 / 群聊”标记、规则标签、候选状态、主题/事件摘要、统计信息和证据编号;默认最多 120 条候选,接口上限为 200 条。代码会替换常见的
- 只读是永久产品边界,不是阶段性状态。 “只读 / dry-run”不是“以后可能自动发送”的委婉说法。微语不会实现或开放自动回复、自动发送、批量发送或代替用户点击发送;也不会把这些能力作为未来版本规划。发布包的正常工作流只负责接收、同步、整理、分析和证据回链,最终决定和任何微信操作都留给用户自己完成。
- 腾讯法务与广义逆向风险需要单独正视。 与微信相关的 Hook、数据库解密、协议解析、功能解析或微信内信息解析,在平台/权利人视角下都可能被按未授权逆向、破解路径或违规自动化审视;社区和论坛也曾出现多个相关项目或推广收到律师函的公开反馈(本说明不对具体个案的事实和法律责任作独立认定)。因此,“只读”“不注入”“不自动发消息”都不能推出“合法”或“不会被追责”。请以当前的微信软件许可及服务协议、平台规则和适用法律为准,自行承担账号、数据、合规与法律风险;本文不是法律意见。
- 特性
- 微语自述
- 使用前先看:风险、数据与合规边界
- 产品反馈与迭代清单
- 产品发布会海报
- 产品预览
- 下载与发布包
- 功能详解
- 安装要求
- 桌面版快速开始
- 桌面版新手教程
- 微语工作台
- 桌面端
- 规则与 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 只做二次整理,且必须引用本地证据编号,无法回链的结论会被丢弃。
会话页提供从摘要回到证据的路径:左侧按聊天查找,中间查看消息正文和图片、文件、语音等类型,右侧查看会话统计与相关状态。媒体字段保留本地媒体键或路径,方便在本机进一步核对。
这一步很重要:日报里的“重点”只是帮助排序,用户可以在会话页确认上下文、前后消息和原始发送者,再决定是否把它当成真正的事项。会话浏览本身不会发送消息。
工作台把待处理候选、事件主线、主题脉络和分析指标放在同一个视图中。每个候选都应带有来源、时间、规则或分析原因以及证据链接,便于判断“为什么会出现”和“下一步是否需要处理”。
“待处理”“已确认”等状态只代表本地工作台里的整理状态,不等于已经向微信联系人发送了内容。微语的产品边界是永久只读;预览和分析只用于本地整理或用户主动配置的外部分析,不会创建微信发送任务。
规则文件支持关键词、正则表达式、聊天、发送者、消息类型、时间段和时区。推荐的处理顺序是:
- 先用规则缩小消息范围并打标签;
- 再按日期、会话和消息类型查看候选;
- 回到原始证据确认上下文;
- 只有确实需要时,手动确认 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 天”或自定义日期范围。
第一次同步可能需要更久,因为后端要扫描可读数据库分片并建立本地索引。同步期间不要重复点击启动程序,也不要移动便携包文件夹。
推荐顺序是“总览 → 日报主线 → 证据附录 → 会话 → 工作台 / 分析 → 小事”。日报里的重点候选是帮助排序的结果,不是自动决策;需要处理的事项应先回到原始消息确认上下文。
固定规则可以直接使用,不配置 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/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}
服务只绑定 127.0.0.1,不会返回 API Key。受支持的产品模式不包含自动回复、重试发送或 /api/send-text;/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_messageswechat.reply_preview
插件不会代替用户发送微信消息,也不会创建自动回复任务。仓库中若仍保留历史发送适配代码,不属于微语产品能力、用户承诺或支持范围。
data/保存本地数据库、同步状态和 QA 浏览器 profile,已整体加入.gitignore;tmp/、output/、wechatauto_logs/保存运行日志、截图、PDF 和安装包等本地产物,不提交;- 仓库不包含微信数据库、聊天记录、Cookie、浏览器登录数据、API Key 或个人配置;
- AI 分析只有在用户手动确认后才会把有限、脱敏但仍可能包含个人信息的候选文本和摘要发送到配置的 AI 服务;
- 没有本地转写时,启用豆包 ASR 会把选中的微信语音音频发送给豆包;
- 普通接收、历史同步、规则分析和桌面端均只访问本机服务;
- 发现安全问题请参阅
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。
- 微语自 v0.1.4 起永久只读:主运行路径是接收、同步、分析和证据回链,不包含自动回复、手动发送或任何未来发送规划;
- 只读 / dry-run 是产品边界,不能消除读取微信内部数据带来的风控、封号或合规风险;
- 微信
4.1.12.26的 Hook DLL 匹配尚未在本项目中验证,不能把公开的其他版本 Hook 目标视为兼容; - 项目不会下载 DLL、注入微信或替换微信安装目录文件;
wxauto4作为回退适配器保留,实际可用性取决于本机微信窗口和依赖版本;- 微信数据库、媒体和语音格式属于第三方应用内部实现,升级微信后需要重新运行诊断和测试。
把零散消息整理成今天真正有用的几行。 🗞️