记录群内谁艾特了谁,支持上下文(艾特消息前后的群聊),以 QQ 聊天风格长图展示查询结果; 内置默认开启的被动提醒。数据存本机 SQLite,配置修改实时生效,无需重启机器人。
- 记录艾特消息:自动存储群内艾特消息(被艾特者、发送者、内容、图片、引用消息、时间等),图片转码 webp 本地缓存。
- 查询出图:
谁艾特我/谁艾特他 @某人生成 QQ 风格聊天长图;超过 15 张自动拆成多条合并转发。 - 艾特提醒(默认开启):被艾特的群友下次在群里发言时会收到提醒截图,不需要任何设置。不想接收就发
#关闭我的艾特提醒。 - 全体艾特(轻量记录):开启
enableAtAll后,@全体成员按时间混入「谁艾特我」结果并带独立标签;每群只保留最近atAll.maxCount条,不产生未读提醒、不占个人配额。 - 上下文:记录层(是否把艾特前后的聊天存库)与提醒层(提醒图是否显示上下文)是两个独立开关。
- 自动清理:过期记录、单人超量记录、孤儿图片自动回收;每天凌晨 4 点 + 启动 1 分钟后执行。
- 锅巴配置面板:基础设置 / 提醒配置 / 其他配置 三分区,支持按群覆盖开关(三态:跟随默认/开/关)。
在 Yunzai 插件目录执行(三个平台的仓库同步更新,选你能访问的那个):
# GitHub
git clone --depth=1 https://github.com/cchanlan/atme-plugin.git ./plugins/atme-plugin
# Gitee
git clone --depth=1 https://gitee.com/longhengmu/atme-plugin.git ./plugins/atme-plugin
# GitCode
git clone --depth=1 https://gitcode.com/ccxhan/atme-plugin.git ./plugins/atme-plugin依赖要求:Node 22.13+(用内置 node:sqlite,无需编译)。
低于这个版本时请自行安装 better-sqlite3:
cd plugins/atme-plugin && pnpm add better-sqlite3(旧的 Redis 版本已移除,现在不依赖 Redis。)
配置文件:atme-plugin/config/config/atme.yaml(首次启动自动从 config/default_config/atme.yaml 拷贝),修改后立即生效。常用项:
| 配置项 | 默认值 | 说明 |
|---|---|---|
expireDays |
1 |
记录保留天数,到期后记录与图片一起清理 |
maxRecordsPerUser |
30 |
每人每群最多保留条数,超出删最旧 |
defaultContext |
true |
新群默认是否开启记录层上下文 |
context.enabled / beforeCount / afterCount |
true / 1 / 1 |
查询截图是否显示上下文及条数(0–5) |
enableAtAll |
false |
是否记录 @全体成员(轻量存储,建议按需开启) |
atAll.maxCount |
10 |
全体艾特每群最多保留条数(1–50) |
reminder.* |
— | 提醒参数:静默期、冷却期、自动撤回等 |
reminderContext.* |
true / 1 / 1 |
提醒截图上下文的新群默认模板(群内设置过即以群内为准) |
autoMergeCfg |
true |
插件更新时自动把新增配置项合并进用户配置 |
imgType |
png |
出图格式:png(最清晰)/ jpeg(体积小)/ webp(最小但微信会变文件) |
background.image |
空 | 聊天区背景图(锅巴面板上传,自动存进插件 resources/bg/),留空 = 纯色 |
background.imageUrl |
空 | 或直接填图片链接/本机路径,填了就优先用它 |
background.veil |
72 |
背景遮罩浓度(百分比 0~100),越大背景越淡、文字越清楚 |
background.fit |
cover |
cover 铺满裁切 / contain 完整显示(留白) |
background.position |
center |
铺满时保留哪一端:top / center / bottom |
background.screenRatio |
0 |
铺背景时把手机撑成的高宽比;0 = 不撑(图跟内容走、下方不留白),想壁纸铺满填 1.9 |
browser.idleCloseSeconds |
60 |
仅插件自开浏览器时生效的空闲关闭秒数 |
提醒默认开启,无需任何设置。群友发
#关闭我的艾特提醒可单独关闭自己; 主人发#关闭本群艾特提醒可关掉整个群。也可在锅巴「提醒配置 → 群组开关」里按群设置。
出图走的是机器人自己的出图入口,所以本地浏览器、外置渲染、远程浏览器、 换别的渲染后端都不用额外配置。真遇到出图入口不可用时,会自动改用插件自带的方案兜底, 实在不行才记录日志并提示,不会让指令崩掉。
| 命令 | 说明 |
|---|---|
谁艾特我 / 谁@我 / 谁at我 |
查询自己在当前群被艾特的记录(含近期全体艾特) |
谁艾特他 @某人(她/它 同理) |
查询指定成员的记录;「它」指机器人本人,无需 @ |
| 命令 | 权限 | 说明 |
|---|---|---|
#关闭我的艾特提醒 |
所有人 | 关闭自己的提醒(只对自己生效) |
#开启我的艾特提醒 |
所有人 | 重新开启自己的提醒 |
#我的艾特提醒状态 |
所有人 | 查看自己的提醒状态 |
#关闭本群艾特提醒 |
主人 | 关闭整个群的提醒 |
#开启本群艾特提醒 |
主人 | 重新开启本群提醒 |
#本群艾特提醒状态 |
主人 | 查看本群提醒与上下文配置 |
记录层与提醒层是两个独立开关:前者决定「要不要存」,后者决定「截图里要不要画」。
| 命令 | 说明 |
|---|---|
#开启艾特上下文 / #关闭艾特上下文(#关闭at上下文 也可以) |
记录层:是否把艾特前后的聊天存进库 |
#开启本群提醒上下文 / #关闭本群提醒上下文 |
提醒层:提醒截图是否显示前后消息 |
#设置本群提醒上下文 前 后 |
设置前后条数,范围 0~5(例:#设置本群提醒上下文 3 2) |
| 命令 | 权限 | 说明 |
|---|---|---|
#清空我的艾特 |
所有人 | 清空自己在当前群的记录与图片,不动开关 |
#清空全部艾特 |
主人 | 清空全部记录、未读提醒、全体艾特与图片,不动开关 |
#重置艾特插件 |
主人 | 清空全部数据与开关配置,一切回到默认 |
| 命令 | 说明 |
|---|---|
#艾特帮助 / #艾特帮助刷新 |
查看 / 重新生成本帮助图 |
#艾特统计 |
查看已存记录数、图片数与占用大小 |
#更新atme-plugin(#艾特更新 等别名) |
从上游拉取插件更新 |
数据在 data/atme/,发送用的临时图在宿主的 temp/atme/:
data/atme/
├── atme.db # SQLite(记录 / 开关 / 未读 / 全体艾特 / 冷却)
├── atme.db-wal # WAL 日志(正常现象)
├── images/ # 艾特消息的图片(webp)
└── help/ # 帮助图缓存
temp/atme/ # 出图发送用的临时文件,发完 2 分钟自动删
数据库表:records(记录)/ unread(未读)/ trigger(被艾特时间)/ cooldown(提醒冷却)/
atall(全体艾特)/ group_record_ctx、group_remind、user_remind、group_remind_ctx(开关)/ meta。
想直接删数据用
#清空我的艾特/#清空全部艾特/#重置艾特插件即可,它们会连带回收本地图片。
- 有人
@你→ 记一条未读(若在冷却期内则跳过)。 - 你下次在同一个群发言时:
- 静默期(默认 600 秒)内发言 → 认为你还在场,不打扰,清掉未读并进入冷却;
- 冷却期(默认 60 分钟)内 → 不重复提醒;
- 否则 → 出图
@你,图里你的发言靠右显示。
- 提醒消息默认 60 秒后自动撤回(
autoRecallSeconds,0 表示不撤回)。
第一次提醒时会附一句「不想接收就发 #关闭我的艾特提醒」,之后不再重复。
GPL-3.0-or-later —— 可自由使用、修改、分发,衍生作品需以相同协议开源。