【免费下载链接】wechat-radar
微信聊天情报看板:聚合群聊信号、话题、链接和趋势
wechat-radar 是一款本地优先的微信群聊情报看板,它用 Codex CLI 把散落在多个微信群里的讨论,按天自动聚合成一份跨群热点话题清单。你不用再逐个翻几十個群聊,打开“话题雷达”页面就能看到当天的热点话题、摘要和完整消息列表。本文带你跑通从安装到实战的完整流程,并拆解它背后的两阶段话题聚合管线。
为什么需要跨群话题聚合
日常刷群时,最常见的痛点是:
- 同一个工具、论文或事件被 5、6 个群重复讨论,不知道哪个群讨论得最深
- 有价值的信息被刷屏淹没,想回溯时根本翻不过来
- 想写周报复盘,素材却散落在各个群里
wechat-radar 的话题雷达正是为此设计:它对当天的全群消息做 LLM 语义判断,把语义相同的话题合并,每个话题输出标题、1-2 句摘要和完整跨群消息列表。关键筛选规则定义在 lib/topics.ts:
| 参数 | 默认值 | 含义 |
|---|---|---|
MIN_MESSAGES_PER_TOPIC | 4 | 一个话题至少 4 条消息,否则丢弃 |
MAX_MESSAGES_TO_PROCESS | 3000 | 每天最多处理 3000 条候选消息 |
MAX_TOPICS_TO_SAVE | 30 | 每天最多保存 30 个话题 |
TOPICS_PER_CHUNK | 12 | 每批 Codex 最多产出 12 个话题草稿 |
快速上手:三步安装 wechat-radar
前置条件(macOS):
- 已登录微信 4.x(测试通过版本为
4.1.9.58,建议用注册半年以上的小号) - Node.js 20+、pnpm(
corepack enable && pnpm --version) - wx-cli 已初始化且守护进程在跑:
wx daemon status - Codex CLI 已安装并登录:
codex --version
第一步,克隆仓库:
git clone https://gitcode.com/gh_mirrors/we/wechat-radar cd wechat-radar第二步,安装依赖并启动:
pnpm install pnpm rebuild better-sqlite3 pnpm dev第三步,打开http://localhost:3000,首次会进入/setup页面:填写你的微信名(用于识别 @我)、确认隐私说明。如果暂时不想连接真实微信,可以勾选demo 模式(或设置WECHAT_RADAR_DEMO=1)直接体验看板效果。
管线拆解:话题雷达如何调用 Codex CLI
核心逻辑集中在 lib/topics.ts,整体是「分批抽取 → 跨批合并」两阶段管线。
消息预筛:只把有效信号喂给模型
调用模型前,loadCandidateMessages 会先做三层过滤:
- 只保留文本/链接类型、长度 ≥ 20 字的消息;
- 清洗
[图片]、[视频]、当前版本不支持展示该内容等占位内容; - 按内容前 80 字去重——同一条转发文章只保留首次出现。
这一步能显著降低模型调用量,也避免“同一篇文章被多群转发”被误判成话题。
分批调用:Codex CLI 只读沙箱
过滤后的消息按 250 条/批切分(见 lib/topics.ts 的分片参数),逐批交给本机 Codex CLI。调用封装在 runCodexJson,实际执行的命令形如:
codex -a never exec --sandbox read-only --ephemeral --ignore-rules \ --output-schema schema.json --output-last-message response.json -两个细节值得注意:
--sandbox read-only:模型只有只读权限,不能改文件、不能联网执行,本地跑着放心;--output-schema:强制输出严格符合 JSON Schema(title/summary/message_ids),字段不允许编造或遗漏。
提示词里还明确要求:优先保留跨群出现的话题、忽略问候闲聊广告、message_ids只能来自输入消息(见 buildExtractionPrompt)。
跨批合并:消灭重复话题
如果当天消息跨了多个批次,各批产出的话题草稿会再送一次 Codex 做合并:语义相同的话题message_ids取并集,证据不足、重复、过泛的话题直接删除。这一步实现在 buildMergePrompt。
最终话题写入本地 SQLite 的topics与topic_messages两张表,数据目录默认在~/.wechat-radar/,聊天数据全程不出本机。
实战操作:在话题雷达页面查看跨群热点
启动后按这个顺序体验:
- 左侧边栏进入「话题雷达」(页面源码:app/topics/page.tsx);
- 选择日期,若该日还没有话题,页面会自动触发构建(见 app/topics/page.tsx),你能实时看到 “Codex CLI 分批聚合 2/5” 这类进度;
- 也可以手动点「构建话题」按钮重建当日结果;
- 左侧是话题列表(带消息数和跨群数),点某个话题,右侧显示摘要与全部跨群消息,每条消息还能跳转到对应群页面回溯上下文。
数据接口对应关系:app/api/topics/route.ts 返回当日话题列表,app/api/topics/[id]/route.ts 返回单个话题的消息明细。
另外一个隐藏福利:在首页点「重扫」完成消息同步后,系统会自动为最近 31 天(全量同步为 14 天)逐日构建话题(见 app/api/rescan/route.ts)。也就是说,同步完数据,历史话题会在后台自动补齐。
实用配置:4 个环境变量值得了解
| 环境变量 | 默认值 | 用途 |
|---|---|---|
WECHAT_RADAR_CODEX_MODEL | 系统默认 | 指定 Codex CLI 聚合时使用的模型 |
WECHAT_RADAR_TOPIC_CHUNK_SIZE | 250 | 每批消息数;调大则批次数少、单次 prompt 更长 |
WECHAT_RADAR_CODEX_TIMEOUT_MS | 300000 | 单次 Codex 调用超时(5 分钟) |
WECHAT_RADAR_AUTO_TOPIC_DAYS | 31(全量为 14) | 「重扫」后自动构建话题的天数 |
常见问题速查:
| 问题 | 解决方法 |
|---|---|
codex命令不可用 | 先安装并登录 Codex CLI,用codex --version验证 |
| 话题雷达为空 | 打开对应日期会自动构建,也可点「构建话题」 |
wx daemon 未运行 | 先执行wx daemon start再刷新页面 |
better-sqlite3模块报错 | 运行pnpm rebuild better-sqlite3 |
隐私与风险提醒
- 数据存储:主库为
~/.wechat-radar/radar.db(SQLite),配置在config.json,应用不上传聊天记录到任何第三方服务(详见 PRIVACY.md); - 注意:话题聚合时,当天消息文本会交给本地 Codex 处理,启用前请先确认这些模型能接收到的数据范围;
- 建议使用注册半年以上的小号,只读历史聊天记录,不做发朋友圈、点赞、发消息等写入操作;
- 本项目仅供学习研究与非商业实验,完整条款见 DISCLAIMER.md 与 LICENSE。
到这里,wechat-radar 的话题雷达实战流程就完整了:把“逐群翻消息”变成“打开雷达看当天热点”。建议先用 demo 数据熟悉界面,再连接真实微信,开始按天自动聚合跨群话题。
【免费下载链接】wechat-radar
微信聊天情报看板:聚合群聊信号、话题、链接和趋势
相关推荐
如何实现微信群消息自动转发:wechat-forwarding完整使用指南
如何实现微信群消息自动转发:wechat forwarding完整使用指南 在多个微信群之间手动转发重要消息既耗时又容易遗漏,现在有了wechat forwar
即时通讯工作流自动化如何用wechat-forwarding实现微信群消息自动转发?3步轻松上手
如何用wechat forwarding实现微信群消息自动转发?3步轻松上手 wechat forwarding 是一款基于Python的开源工具,能帮助你在不
即时通讯工作流自动化如何实现微信群消息自动转发?wechat-forwarding的终极指南
如何实现微信群消息自动转发?wechat forwarding的终极指南 在信息爆炸的今天,微信群已成为我们获取信息、交流沟通的重要平台。但管理多个微信群时,重
即时通讯工作流自动化
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考