weibo-chat-auto
Health Pass
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 12 GitHub stars
Code Fail
- fs module — File system access in .github/workflows/ci.yml
- child_process — Shell command execution capability in auto-archive-simple.js
- exec() — Shell command execution in auto-archive-simple.js
- fs.rmSync — Destructive file system operation in auto-archive-simple.js
- fs module — File system access in auto-archive-simple.js
- network request — Outbound network request in benchmark-qa.mjs
- fs module — File system access in lib/chrome-path.js
- fs.rmSync — Destructive file system operation in package.json
- fs module — File system access in package.json
- network request — Outbound network request in qa-agent.mjs
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
微博群聊消息自动归档 · 原生桌面应用(应用内扫码登录)+ 本地可视化查看器,含 AI 每日摘要与 Agentic 问答
📨 Weibo Group Chat Archiver
自动归档微博网页聊天群的历史消息 — 原生桌面应用(应用内扫码登录,无需手动配 Cookie)或本地查看器,支持多群、定时归档、按天导出,内置 AI 每日摘要与 Agentic 问答。

演示中的用户名、群名与头像均为脱敏示例。
✨ 功能
| 归档 | 查看器 |
|---|---|
🗂 多群支持(config.json 配置) |
🎨 Linear 风格深色界面 |
| 🖥 原生桌面应用(应用内扫码登录) | 🔀 多群切换 |
| 🍪 Cookie 自动保持登录 | 📅 日历选择 + 60s 自动刷新 |
| 📡 API 分页拉取全部历史 | 🔥 时段热力图 / 用户 / 媒体筛选 |
| ➕ 增量归档(断点续传) | 🔍 搜索就地高亮 + n/N 跳转(保留上下文) |
| 📆 按日期导出 JSON | 📊 统计面板(日活 / 排行 / 时段 / 词频) |
| ⏰ 定时任务 + 手动 Sync Now | 🧹 红包 / 噪声消息过滤 |
| 🎯 上下文聚焦面板(追一条消息的来龙去脉) | |
| 💬 引用可跳转、标注原作者;@提及高亮 | |
| 🤖 AI 每日摘要 + Agentic Q&A 问答 | |
| 🖼 图片代理(绕过防盗链)、视频链接、分享卡片 |
🚀 快速开始
git clone https://github.com/alloevil/weibo-chat-auto.git
cd weibo-chat-auto
| 方式 | 命令 | 说明 |
|---|---|---|
| 桌面应用 | ./run-desktop.sh |
原生 app,应用内扫码登录,无需手动配 Cookie |
| 网页版 | ./setup.sh |
浏览器查看器 http://localhost:3456 |
首次运行会自动安装所需依赖(Rust/Bun/npm)。
🖥 桌面应用(macOS)
./run-desktop.sh
一条命令完成:检测环境 → 安装依赖 → 编译 → 启动。打开后点击 🔑 登录,扫码即可开始归档。
🌐 网页版
./setup.sh # 首次:安装 + 配置 + 扫码登录
npm run view # 之后:启动查看器
桌面应用架构
- Tauri v2 原生窗口 + WKWebView
- Sidecar:Bun 编译
viewer-server.js为 ~60MB 独立二进制,app 启动时自动拉起 - 登录:Rust 打开 WebView → 扫码 →
cookies_for_url()提取 HttpOnly Cookie → 自动保存 - IPC:WKWebView 不注入 Tauri IPC,改用 HTTP 信号中转
- 图片:微博 CDN 检查 Referer,本地
/api/sinaimg?url=代理绕过
1️⃣ 安装依赖
npm install
2️⃣ 保存 Cookie
npm run save-cookies
会弹出一个独立浏览器窗口(与日常 Chrome 隔离),打开微博聊天页:用微博 App 扫码 → 手机确认 → 跳转到聊天列表后 Cookie 自动写入 cookies.json。
3️⃣ 配置群聊
复制模板并填入群名(须与微博中完全一致):
cp config.example.json config.json
{
"chromePath": "",
"groups": ["群名称A", "群名称B"]
}
chromePath留空即自动探测系统中的 Chrome;仅在 Chrome 装在非默认位置时才需手动填写。
4️⃣ 运行 & 查看
npm run archive # 首次拉取最近 7 天,之后增量更新
npm run view # 启动查看器 → http://localhost:3456
🔁 日常使用
平时保持查看器开着即可:
npm run view
打开 http://localhost:3456 → 点 Sync Now 同步最新消息(页面每 60s 自动刷新)。
读记录小技巧- 🎯 上下文:每条消息头部的链接,点开右侧面板看它的来龙去脉(被回复的原消息 + 前后邻域 + 后续回复)
- 引用跳转:引用气泡标出原作者,点击可跳到原消息并高亮
- 搜索定位:搜索不隐藏其它消息,就地高亮匹配,用
n/N在结果间跳转 - 未读分隔线:再次打开时,「以下为新消息」标出上次离开后的增量
Cookie 有时效(约几天~两周),但归档器每次成功运行都会自动续期:
| 方式 | 效果 |
|---|---|
| ✅ 保持定时任务运行 | Cookie 自动续期,基本不会过期(推荐) |
| 🖱 每天点一次 Sync Now | 手动保活 |
🔄 npm run save-cookies |
已过期时重新扫码(不影响已归档数据) |
🤖 AI 功能
查看器内置两个 AI 功能:每日摘要 和 Agentic Q&A 问答。需配置 OpenAI 兼容的 API。
配置
页面右上角 ⚙️ → 填写:
| 字段 | 说明 |
|---|---|
| Base URL | API 地址(如 https://api.deepseek.com/v1) |
| API Key | 密钥 |
| Model | 模型名(如 deepseek-chat) |
| Vision | 摘要时是否分析图片 |
配置保存到本地 ai-config.json(不会提交到 git)。
Q&A 问答
在工具栏的问答输入框中提问,支持自然语言时间("最近"、"昨天"、"上周")和人名筛选。
Agent 模式(默认):LLM 迭代搜索,自主决定关键词和搜索范围,多轮查找直到信息充分。
技术方案采用 Agentic Search 模式,loop 机制参考:
- Hermes Agent — IterationBudget + grace call
- Pi-Multi-Agent — state machine + retry with backoff + timeout
- LedgerAgent 论文 — 结构化状态累积
Benchmark (Agent vs Legacy):
| 指标 | Agent | Legacy |
|---|---|---|
| 平均延迟 | 20.5s | 10.1s |
| 成功率 | 100% | 100% |
| 日期推理 | 正确 | 偶尔错误 |
| 搜索覆盖 | 多轮扩展 | 单次 |
| 答案质量 | 高 | 中 |
📸 预览截图
消息视图 — 时段热力图、引用气泡(标原作者)、@提及高亮、每条「🎯 上下文」入口

上下文聚焦 — 点 🎯 弹出右侧面板:被回复的原消息 + 前后邻域 + 后续回复

统计面板 — 每日消息量、活跃用户排行

✅ 前置要求截图中的用户名、群名与头像均为脱敏示例。
| 必需 | 说明 |
|---|---|
| 🖥 macOS / Linux / WSL | 归档与查看器跨平台运行;定时任务自动安装仅 macOS(Linux 见 cron 说明) |
| 🟢 Node.js 18+ | brew install node(macOS)/ apt install nodejs(Linux)/ nodejs.org |
| 🌐 Google Chrome | 归档器用它登录并抓取消息;路径自动探测 |
| 📱 微博账号 + 手机 App | 首次需用 App 扫码登录网页版 |
| 🦀 Rust + Bun | 仅桌面应用需要;./run-desktop.sh 会自动安装 |
⏰ 定时自动运行Windows 用户请在 WSL 中使用;桌面应用目前仅在 macOS 验证。
macOS — ./setup.sh 安装时会询问是否启用,也可手动管理 launchd 任务:
launchctl list | grep weibo # 查看状态
launchctl unload ~/Library/LaunchAgents/com.allo.weibo-chat-archive.plist # 停用
launchctl load ~/Library/LaunchAgents/com.allo.weibo-chat-archive.plist # 启用
Linux / WSL — 用 cron(crontab -e),每小时归档一次:
0 * * * * cd /path/to/weibo-chat-auto && node auto-archive-simple.js >> logs/archive.log 2>&1
📁 项目结构启用后定时归档会顺带刷新 Cookie,基本不会过期。
weibo-chat-auto/
├── setup.sh # 网页版一键安装脚本
├── run-desktop.sh # 桌面应用一键启动(装依赖→编译→运行)
├── config.example.json # 群聊配置模板
├── config.json # 实际配置(不提交)
├── auto-archive-simple.js # 主归档脚本
├── save-cookies.js # Cookie 保存工具
├── viewer-server.js # 本地查看器服务器
├── viewer.html # 查看器页面(单页应用,Linear 深色主题)
├── qa-agent.mjs # Agentic Q&A 模块
├── benchmark-qa.mjs # Agent vs Legacy 对比测试
├── src-tauri/ # Tauri v2 桌面应用(Rust)
│ ├── src/lib.rs # 窗口、sidecar 拉起、应用内登录
│ └── tauri.conf.json
├── sidecar/build.mjs # 用 Bun 把 viewer-server 编译为独立二进制
├── cookies.json # 登录凭据(不提交)
├── ai-config.json # AI 配置(不提交)
├── state/ # 归档状态(不提交)
├── output/ # 归档数据(不提交)
│ └── 群名/
│ └── weibo_chat_2026-05-01.json
├── cache/images/ # 图片缓存(不提交)
├── docs/ # 文档和截图
│ └── agent-qa.md # Agent Q&A 技术方案
└── package.json
🧾 输出数据格式
每条消息:
{
"id": 123456789,
"from_uid": 12345,
"user": "用户名",
"avatar": "https://...",
"timestamp": 1778000000000,
"time": "2026/05/11 12:00:00",
"date": "2026-05-11",
"content": "消息内容",
"type": 321,
"pics": ["https://upload.api.weibo.com/2/mss/msget?source=...&fid=..."],
"share": {
"url": "http://weibo.com/...",
"title": "...",
"author": "...",
"pics": ["https://wx1.sinaimg.cn/large/..."],
"reposts": 100,
"comments": 50,
"likes": 200
}
}
🛠 故障排除
Cookie 失效(同步报错、日历不更新、日志出现"未找到群聊")npm run save-cookies
扫码登录后 Cookie 自动保存。
为什么过期? 独立浏览器不共享日常登录态,微博 Cookie 本身有时效。长期不运行归档(如定时任务被停用)就会过期。保持定时任务运行可自动续期。
页面加载失败检查 config.json 中的 chromePath 是否正确,并确认已安装 Google Chrome。
图片经本地服务器代理加载(依赖有效 Cookie),Cookie 过期后无法显示。重新 npm run save-cookies 即可。
🔒 隐私声明
本工具仅供归档自己参与的群聊消息,请勿用于侵犯他人隐私。
- 归档数据包含群内所有成员的消息内容、用户名和头像
- 请妥善保管
cookies.json和output/,切勿公开分享 - 代码仅供学习交流,使用者自行承担风险
- 请遵守微博服务条款和相关法律法规
📄 License
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found