🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

QQ群消息筛选 K9m1a5c/dsh-qqreminder

DeepSeek Harness
K9m1a5c24 天前有提交已提供中文文档扫描:含敏感能力

让 DSH 成为你的 QQ 信息管家:几百条群聊里,只挑出你该知道的那几条

30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/12 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add K9m1a5c/dsh-qqreminder
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]—
静态安装检查有提示项,装前建议看一眼 README
L4 · 真实安装等级说明 →
数据截至 2026/10/31·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 24 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-qqreminder(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/9 17:36:08

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 18 处,展示前 14 条)
  • 读取本地文件
    lib/index.js:67
    const content = await readFile(SKILL_URL, "utf8");
  • 读取本地文件
    lib/index.js:196
    return JSON.parse(await readFile(p, "utf8"));
  • 读取本地文件
    lib/index.js:234
    if (preferred && existsSync(preferred)) return preferred;
  • 读取本地文件
    lib/index.js:253
    if (script && !existsSync(script)) {
  • 写入本地文件
    lib/index.js:389
    await writeFile(P.auth, JSON.stringify(next, null, 2), "utf8");
  • 写入本地文件
    lib/index.js:422
    await writeFile(P.focus, JSON.stringify(cur, null, 2), "utf8");
  • 读取本地文件
    lib/index.js:438
    if (!existsSync(P.build)) {
  • 读取本地文件
    lib/index.js:496
    markdown = await readFile(mdOut, "utf8");
  • 写入本地文件
    lib/index.js:567
    await writeFile(P.focus, JSON.stringify(cur, null, 2), "utf8");
  • 执行外部命令固定命令
    lib/index.js:723
    execFile("cmd.exe", ["/c", "start", "", full], { windowsHide: true }, (err) =>
  • 发起网络请求
    lib/client.js:30
    const r = await fetch(API + path, opt);
  • 写入剪贴板
    lib/client.js:114
    await navigator.clipboard.writeText(text);
  • 写入剪贴板
    lib/client.js:152
    await navigator.clipboard.writeText(sumPrompt);
  • 写入剪贴板
    lib/client.js:405
    { style: S.btn, onClick: () => { try { navigator.clipboard.writeText(rep.path || ""); setMsg("已复制报告路径"); } catch (e) { setMsg(rep.path || ""); } } },
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 筛选群聊消息
  • 提取关键消息

README

由 DeepSeek 最新模型翻译生成
QQreminder 群太多,重要的那条总是被淹掉。 一天没看手机,四百条未读里就是三条跟你有关:一条选课通知、一条提交截止、一条你被 @ 了。 剩下的全是"哈哈哈哈"和表情包。 QQreminder 就是干这个的:把"我该知道的"从"我错过的"里挑出来。 给 DeepSeek Harness 用的插件。 全程本地、只读、不登录、不联网上传。 它怎么工作(一张图) QQ 本地数据库 ──▶ 建索引 ──▶ 按「你的关注词」多信号打分 ──▶ AI 精排 ──▶ 可点击的 HTML 报告 ▲ │ │ │ (解密那一步 │ 本地规则只负责"召回" 真正理解内容、不在本插件内, │ (快、免费、能离线) 适应任何行业见下文方式 C) │ └────────── 全程本地 · 只读 · 不登录 · 不上传 ──────────┘ 一句话分工:本地脚本负责"把可疑的都捞出来",AI 负责"到底哪条重要"。
展开完整文档(README 剩余 1 节)
QQreminder

群太多,重要的那条总是被淹掉。

一天没看手机,四百条未读里就是三条跟你有关:一条选课通知、一条提交截止、一条你被 @ 了。
剩下的全是"哈哈哈哈"和表情包。

QQreminder 就是干这个的:把"我该知道的"从"我错过的"里挑出来。

给 DeepSeek Harness 用的插件。
全程本地、只读、不登录、不联网上传。

它怎么工作(一张图)

QQ 本地数据库 ──▶ 建索引 ──▶ 按「你的关注词」多信号打分 ──▶ AI 精排 ──▶ 可点击的 HTML 报告 ▲ │ │ │ (解密那一步 │ 本地规则只负责"召回" 真正理解内容、不在本插件内, │ (快、免费、能离线) 适应任何行业见下文方式 C) │ └────────── 全程本地 · 只读 · 不登录 · 不上传 ──────────┘

一句话分工:本地脚本负责"把可疑的都捞出来",AI 负责"到底哪条重要"。

它长什么样

① 一份能点进去的报告

(下面两张都是真截图,数据是插件自带的虚构示例)

总览

- 顶部五个数字:有效消息 / 涉及群 / 重点条目 / 疑似遗漏 / 发言人数
- 🗂 关键群卡片 —— 点一张就进那个群
- 📌 最重要 N 条 —— 每条都写着「为什么重要」(命中了哪个关注词、是谁发的、权重多少)
- ⚠️ 你可能漏了 —— 分数不高、但带时效/行动词的消息(最容易被淹掉的那类)

点进某个群,只看这个群:

群详情

顶部页签、群卡片、消息分布条 —— 三个入口都能进群,怎么顺手怎么点。

💡 截图顶部那行橙色提示「数据已过去 2.4 小时」不是 bug,是故意的:它读的是本地数据库文件的最后写入时间。QQ 没开、没登录过,它就冻在那儿 ——插件会如实告诉你数据有多新,绝不拿旧数据当实时。

② 设置里的面板:一个开关 + 三个动作

面板:我的关注词与生成摘要

- 「我的关注词」(上图)—— 命中任意一个都会加权。改成你自己的词,它就开始替你干活 (学生写"选课 / 保研",上班族写"需求变更 / 报销 / 周会")
- 「刷新索引」 —— 重新扫一遍本地数据库,几秒钟
- 「生成摘要」 —— 选时间窗 → 一句指令自动复制到剪贴板 → 粘给 AI

面板:内容读取开关与生成报告

- 「QQ 内容读取」开关 —— 关掉就只给统计和元数据,正文一条都不出(授权开关,随时可撤)
- 「生成报告」 —— 自选日期区间(或用"近 1/3/7/30 天"快捷),出一份可离线打开的 HTML
- 顶部那行小字是数据新鲜度:数据截止时间、索引构建时间、窗口、扫描行数、读取错误数

功能一览

| 功能 | 说明 | 入口 |
| 可点击 HTML 报告 | 五个数字 + 群卡片 + 「为什么重要」+ 「你可能漏了」 | 面板 / 让 AI 生成 |
| 群内下钻 | 点群卡片 / 页签 / 分布条都能进群 | 报告页 |
| 话题检索 | 「帮我找群里关于 X 的信息」,带上下文,不是孤零零一条 | 对 AI 说 |
| 关注词画像 | focus.json 一改,什么叫"重要"就变 | 面板 / 配置文件 |
| AI 冷启动分析 | 第一次用:本地只做客观统计+抽样,把材料交给 AI 判断该盯哪些群 | 面板【✨ 用 AI 分析】 |
| 示例数据 | 零配置试玩(人物群名全虚构) | 面板【📦 加载示例数据】 |
| 授权开关 | 读不读正文,控制权在你手上 | 面板开关 |
| 数据新鲜度声明 | 每次输出都写"数据截止几点",不含糊 | 报告 / 摘要 |

装上之后怎么用

三步上手

① 装插件(下面有安装命令) ② 打开 DSH → 设置 → QQreminder ③ 第一次没有数据?点【📦 加载示例数据】 → 立刻生成一份虚构的大学群聊,看看它到底能干嘛

示例数据是虚构的(临江大学 / 刘老师 / 周老师……),人名群名对话全是编的,随便看随便截图。

然后,直接跟 AI 说人话就行

这个插件自带技能和工具,所以 AI 装上就知道它能干什么:

「翻一下群,看看今天有什么重要的」

「帮我找群里关于选课的所有信息」

「有没有我漏掉的?」

AI 会自己调 qq_search / qq_digest,不需要你记任何命令。

面板上还有两个按钮:

| 按钮 | 做什么 |
| 📄 生成报告 | 选个日期区间 → 出一份上面的 HTML 报告 |
| 📝 生成摘要 | 把一句指令自动复制到剪贴板 → 粘给 AI |
| ✨ 用 AI 分析 | 第一次用时帮你分析该盯哪些群、该关注什么词 |

⚠️ 面板上写清楚了哪个按钮会改配置:只有「应用选中」才会写。
其他按钮都只是准备材料,不会偷偷动你的东西。

安装

从 GitHub 装(需要 DSH 0.2.0+)
dsh plugin add https://github.com/K9m1a5c/dsh-qqreminder

或者本地打包:

git clone https://github.com/K9m1a5c/dsh-qqreminder
cd dsh-qqreminder
npm pack
dsh plugin add dsh-qqreminder-*.tgz

依赖:只要 Python 3.8+(引擎全部用标准库,不需要 pip install 任何东西)。
插件会自动找 python3 / python / py,找不到会在面板里告诉你。

数据从哪来?(重要,请先读这段)

QQreminder 是分析层,它需要一个已经建好的本地索引才能工作。

方式 A:先用示例数据(推荐第一次)

点面板上的【📦 加载示例数据】,它会生成一份虚构数据放进你的数据目录。
零配置、零风险,用来试试功能、看看报告长什么样。

方式 B:接入你自己的聊天记录

本仓库不包含解密模块,也不提供任何绕过 QQ 加密的代码。
你需要自己准备好数据,然后在数据目录下建一份 SQLite 索引:

<数据目录>/ # 默认 ~/QQreminder,可用环境变量 QQREMINDER_ROOT 改 └── qgd/ ├── data/index.db # 索引(表结构见下) ├── focus.json # 你的配置:监工群 / 关注词 / 打分规则 └── authorization.json # 授权开关:{"qq_read": true}

index.db 需要的三张表:

-- 消息(核心)
messages(msg_id INTEGER PRIMARY KEY, ts INTEGER, day TEXT, hour INTEGER,
group_code TEXT, group_name TEXT, sender_uid TEXT, sender_qq TEXT,
sender_name TEXT, direction TEXT, msg_type INTEGER, subtype INTEGER,
kind TEXT, text TEXT, reply_seq INTEGER)

-- 群
groups(group_code TEXT PRIMARY KEY, group_name TEXT, weight REAL,
msg_count INTEGER, last_ts INTEGER)

-- 元信息(至少要 cutoff_ts,报告会如实声明数据截止时间)
meta(key TEXT PRIMARY KEY, value TEXT) -- cutoff_ts / built_at / read_errors ...

engine/load_example.py 就是照着这个结构写数据的,可以直接当参考实现看。

方式 C:用第三方工具解密 QQ 数据库(自行评估)

QQreminder 只做分析。「从 QQ 数据库提取消息」这一步不在本插件范围内 ——本仓库不包含任何解密代码。

如果你需要那一步,社区里有专门做这件事的开源项目:

| 项目 | 用途 |
| QQBackup/QQDecrypt | 解密 QQ 本地数据库 |
| QQBackup/nt_msg_db_util | 消息数据库解析工具 |
| NapNeko/qq_dump_db | 导出 QQ 数据库 |

拿到解密后的数据,按上面「方式 B」的表结构整理成 index.db,本插件就能用。

⚠️ 这些工具与本项目没有任何关联。 它们涉及处理 QQ 的加密数据库,可能包含逆向工程相关内容 —— 请自行评估合规性与风险。
本项目不为其行为负责,也不提供相关技术支持。

方式 D:直接让 AI 帮你搞定(装了插件之后)

装好插件,直接对你的 AI 说:

"我的 QQ 群消息太多了,帮我整理一下。如果我没有数据,告诉我怎么弄。"

AI 会读插件自带的说明(assets/qqreminder.md),然后带你走完:

① 告诉你去哪拿一个【已经解密的】QQ 消息数据库(解密不在本插件范围内,它会指路并说明风险) ② 你拿到文件之后,把路径告诉它 ③ 它自己探索那个库的结构,写转换、生成 index.db ④ 然后就能出报告 / 摘要 / 话题检索了

⭐ 说明书就在插件里 —— 装上之后,AI 自己就知道该怎么做,你不用研究任何格式。

这也是本插件唯一"需要用户配合"的一步:拿到明文数据库。
除此之外全程由 AI 完成。

配置:focus.json

{
"监工群": [ { "群号": "…", "群名": "…", "权重": 2.0 } ],
"关注词": { "截止": 6, "报名": 5, "选课": 6 }, // 命中即加权
"降权词": { "抽奖": -3, "优惠": -3 },
"身份词": ["老师", "班助", "学长"], // 名片里带这些 = 可信来源
"通知词": { "强": ["通知", "全体成员", "务必"], "弱": ["提醒", "安排"] },
"遗漏提示词": { "时效": ["截止", "之前"], "行动": ["报名", "提交"] },
"打分": { "遗漏区间": [2, 6], "过期天数": 2 }
}

「关注词」是你可以随便改的地方 —— 学生写"选课/保研",上班族写"需求变更/报销/周会", 改成你自己的词,它就开始替你干活。

它凭什么挑得准?

打分是多信号加权,不是数关键词:

| 信号 | 分值 | 为什么 |
| 命中关注词 | +6 | 你最在意的,优先 |
| @我 | +5 | 点你名了,基本跑不掉 |
| 群主 / 管理员发的 | +4 | 权威来源 |
| 名片含身份词(老师/班助/学长) | +3 | 同上 |
| 通知类强词 / 弱词 | +3 / +1 | 「务必」「全体成员」vs「提醒」 |
| 长文 | +1 ~ +2 | 通知往往写得长 |
| 转发 | +1 | 常是"帮转一下"的重要事 |
| × 群权重 | ×0.4 ~ ×2.0 | 摸鱼群的事再热闹也不该顶掉班群 |

外加一层「你可能漏了」:分数中等(2~6)但含时效 / 行动 / 疑问词的消息 ——这类最容易被"群消息太多"淹没,超过 2 天还会标已过期。

一个设计上的取舍

本地规则永远追不上行业差异 ——学生关心「选课」,上班族关心「报销」,本地词表写不完。

所以这里分两层:

本地脚本 = 召回(快、免费、离线可用,负责把可疑的都捞出来)
AI = 精排(真正理解内容,适应任何行业)

面板上的【✨ 用 AI 分析】就是这个思路:本地只做客观统计和抽样,把材料交给 AI,由它判断"哪些群值得盯、该关注什么词"。

诚实边界(这些它做不到)

- ⚠️ 看不到 QQ 没同步下来的消息。它读的是本地数据库文件,不是连着 QQ。
QQ 关着 → 文件冻在最后关闭那一刻;很久没登录 → 中间那几天根本没有。
- ⚠️ 不会自动知道"还有新消息"。它只报告文件里有什么,以及数据截止到几点。
- ⚠️ 不登录、不碰协议端、不连腾讯服务器。只有你本机的文件读取。
- ⚠️ 只读。一个字节都不会改你的 QQ 数据目录。
- ⚠️ Windows 优先(开发和测试都在 Windows)。核心逻辑是跨平台的,但"用系统浏览器打开报告"这类便利功能目前是 Windows 实现。

隐私:所有分析都在本机完成。唯一会"出去"的,是你在对话里主动交给 AI 的内容(比如点【用 AI 分析】后把材料发出去)—— 这一步由你决定。

授权开关

面板上有一个 「QQ 内容读取」 开关,对应 authorization.json 里的 qq_read:

- 打开:可以读群消息正文,生成摘要和报告
- 关闭:只能输出统计和元数据(群名、消息量、时间跨度),后端接口直接返回 403,任何正文都不会出现在输出里

这是给你(而不是给程序)的控制权:随时可撤销。

常见问题(FAQ)

Q:需要登录 QQ 吗? A:不需要。它读的是本机数据库文件,不登录、不碰协议、不连腾讯服务器。

Q:会把我的聊天记录上传吗? A:不会。所有分析在本机完成。唯一"出去"的是你主动粘给 AI 的材料(比如点了【用 AI 分析】)。

Q:手机 QQ / 微信 / TIM 能用吗? A:目前不能,只支持本机 PC 版 QQ 的数据库。

Q:索引多久更新一次? A:手动。点面板【刷新索引】,或让 AI 跑一次;它不会背着你在后台扫描。

Q:没装 Python 会怎样? A:面板会明确告诉你"没找到 Python",并列出它找过的命令(python3 / python / py)。
装一个 3.8+ 即可,不需要 pip install 任何东西。

Q:为什么报告顶部写着"数据已过去 2.4 小时"? A:那是故意的。数据有多新就说多新,不拿旧数据冒充实时。

🗺 Roadmap

想做的、待讨论的都会开成 Issue 挂在那边 —— 有想法欢迎去留言:

- [ ] 除了 QQ,还该支持哪些消息源?—— 欢迎去 Issue 里讨论 (#1)

还有别的想法?直接开 Issue 就行。

项目结构

dsh-qqreminder/
├── lib/
│ ├── index.js # 宿主侧:12 个 HTTP 端点 + 自带技能 + 2 个 AI 工具 │ └── client.js # 面板:设置页里的「QQreminder」 ├── assets/qqreminder.md # 自带技能(AI 的操作手册) ├── engine/ # ★ 分析引擎(纯 Python 标准库) │ ├── score.py # 多信号打分 → 摘要 + 遗漏提醒 │ ├── make_report.py # 可点击的 HTML 报告 │ ├── search_topic.py # 话题检索(带上下文) │ ├── pack_material.py # 给 AI 备料(客观统计 + 抽样) │ ├── autoconfig.py # 冷启动分析(纯本地版) │ ├── load_example.py # 生成示例数据 │ └── demo-student.json # 虚构示例数据 └── docs/ # 截图

引擎随插件走(在 engine/ 里),数据在你自己的目录里 ——两者彻底分开,所以你可以随时把数据目录指向别处,甚至放多份不同数据。

环境变量

| 变量 | 作用 | 默认 |
| QQREMINDER_ROOT | 数据根目录 | ~/QQreminder |

🤝 贡献

- 有想法 / 发现 bug → 直接开 Issue,模板不用讲究,说清"你想要什么 / 发生了什么"就行
- 改代码 → Fork → 建分支 → 改 → 提 PR(一个 PR 只做一件事)
- 只想加两个关注词 → 不用改代码,改你自己的 focus.json 就行
- 引擎是纯标准库 Python,改动前跑一下 python engine/load_example.py 就能自测

License

MIT

一点说明

示例数据里的人物、学校、群聊内容全部是虚构的,与任何真实个人或组织无关。
截图用的就是这份示例数据。

如果你要分享自己的报告截图,记得先看一眼里面有没有别人的真名 ——群里说话的是活人,他们的名字不该因为你分享工具而出现在互联网上。
预览分享卡片长什么样 ↓K9m1a5c/dsh-qqreminder
分享 · DeepSeek Harness Hub
K9m1a5c/dsh-qqreminder

让 DSH 成为你的 QQ 信息管家:几百条群聊里,只挑出你该知道的那几条

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部