为 ChatLuna 提供表情包:管理本地表情包和外部随机图源,注入随机图清单让模型发表情,支持 AI…
30.6/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/CookSleep/chatluna-memes.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 6 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 11 处,展示前 11 条)
- 发起网络请求client/composables/adminFetch.ts:12
return fetch(url, { ...options, headers }) - 发起网络请求client/composables/useDashboard.ts:416
const response = await fetch(`${getBackendBaseUrl()}/api/homepage-data`) - 写入剪贴板client/composables/useDashboard.ts:447
await navigator.clipboard.writeText(text) - 读取本地文件src/console-handlers.ts:26
const consoleBase = existsSync(installedBase) ? installedBase : packageBase - 读取本地文件src/migration.ts:47
source = JSON.parse(readFileSync(path.resolve(baseDir, LEGACY_ROOT, LEGACY_SETTINGS_FILE), 'utf8')) - 读取本地文件src/migration.ts:107
if (existsSync(legacyRoot) && !enabled) { - 读取本地文件src/migration.ts:118
if (!existsSync(legacyRoot)) { - 读取本地文件src/settings-store.ts:29
raw = readFileSync(this.filename, 'utf8') - 读取本地文件src/settings-store.ts:33
const firstRun = !existsSync(path.dirname(this.filename)) - 写入本地文件src/settings-store.ts:37
mkdirSync(path.dirname(this.filename), { recursive: true }) - 写入本地文件src/settings-store.ts:38
writeFileSync(this.filename, JSON.stringify(diffFromDefaults(settings), null, 2), { flag: 'wx', mode: 0o600 })
扫描于 2026/11/2(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成ChatLuna Memes
让 ChatLuna 会发表情包的 Koishi 插件
把本地表情包和外部随机图 API 整理成一组随机图地址,注入 ChatLuna 的预设,模型就能按语境挑一张发出去。
用 AI 为每张图生成标签和别名,模型可以按关键词找图;群里反复出现的图会被收进待审区,确认后一键归档。
所有管理和设置都在 Koishi 控制台里完成,保存后立即生效。
✨ 功能
🗂️ 表情包与外部图源
- 表情包:上传本地图片或导入外链,每个表情包有自己的随机图地址,如 /chatluna-memes/猫猫。
- 外部图源:把随机图 API 挂到同一个前缀下,访问时 302 跳转过去;添加前可以先试一下能不能取到图。
- 管理:多选后批量移动、删除和标注,标签与别名跟着图片一起移动;重复上传会复用已有的图片和标注。
💬 ChatLuna 注入
- 两个变量:{chatluna_memes} 是完整的使用说明,{chatluna_memes_list} 只有随机图清单,按需选一个填进预设。
- 提示词模板:在「配置」里修改使用说明的模板,在「预览」里查看渲染后的完整文本。
- 自动更新:增删表情包或外部图源后,变量内容随之更新,空表情包不会列出。
展开完整文档(README 剩余 1 节)
ChatLuna Memes
让 ChatLuna 会发表情包的 Koishi 插件
把本地表情包和外部随机图 API 整理成一组随机图地址,注入 ChatLuna 的预设,模型就能按语境挑一张发出去。
用 AI 为每张图生成标签和别名,模型可以按关键词找图;群里反复出现的图会被收进待审区,确认后一键归档。
所有管理和设置都在 Koishi 控制台里完成,保存后立即生效。
✨ 功能
🗂️ 表情包与外部图源
- 表情包:上传本地图片或导入外链,每个表情包有自己的随机图地址,如 /chatluna-memes/猫猫。
- 外部图源:把随机图 API 挂到同一个前缀下,访问时 302 跳转过去;添加前可以先试一下能不能取到图。
- 管理:多选后批量移动、删除和标注,标签与别名跟着图片一起移动;重复上传会复用已有的图片和标注。
💬 ChatLuna 注入
- 两个变量:{chatluna_memes} 是完整的使用说明,{chatluna_memes_list} 只有随机图清单,按需选一个填进预设。
- 提示词模板:在「配置」里修改使用说明的模板,在「预览」里查看渲染后的完整文本。
- 自动更新:增删表情包或外部图源后,变量内容随之更新,空表情包不会列出。
🏷️ AI 标注与搜索
- 自动标注:用 ChatLuna 中的模型为上传、偷图和归档的图片生成标签与别名,也可以在编辑弹窗里手动识别。
- 按关键词找图:随机图地址后加 ?q=关键词,按别名、标签和文件名找最匹配的一张;不带表情包名时在全部表情包里搜索。
- 用量可控:可以设置并发数、重试、超时和每日请求上限,在「预览」里查看任务进度并随时取消。
📥 自动收集与待审区
- 高频收集:开启后,同一张图在群里一段时间内出现若干次,就会被收进待审区。体积范围和每群每日上限都可以调整。
- 相似分组:按感知哈希把相似的图片归为一组,方便整组归档或删除。
- 过期清理:待审区的图片超过保留天数后自动删除。
✅ 前置条件
- Koishi 4.18 及以上,并启用数据库插件。
- 需要发图和管理页时启用 server 和 console(Koishi 默认已启用)。
- ChatLuna 注入和 AI 标注需要 ChatLuna。AI 标注要选支持识图的模型。
🚀 使用
1. 启用插件后,在控制台侧栏打开 ChatLuna Memes。
2. 在「表情包」中新建表情包,上传图片;需要的话在「外部图源」中添加随机图 API。
3. 在「配置」中开启 ChatLuna 注入,把 {chatluna_memes} 填入 ChatLuna 预设中合适的位置(例如介绍可用能力的部分)。变量只有填进预设才会生效。
4. 机器人对外的地址和 Koishi 的 selfUrl 不同时(例如经过反向代理),在「配置」中填写对外地址,否则模型拿到的地址无法访问。
随机图地址
| 地址 | 作用 |
| /chatluna-memes/表情包名 | 从表情包中随机返回一张;外部图源则 302 跳转 |
| /chatluna-memes/表情包名?q=关键词 | 在该表情包里按关键词找图,找不到时随机返回 |
| /chatluna-memes?q=关键词 | 在全部表情包里按关键词找图 |
| /chatluna-memes/表情包名/文件名 | 返回指定的本地图片 |
前缀可以在「配置」中修改,修改后已经发出去的旧地址会失效。
命令
| 命令 | 作用 |
| chatluna.memes.list | 列出可用的表情包和外部图源 |
| chatluna.memes.stole <表情包名> | 引用带图片的消息后发送,把图片存进表情包;别名 偷了 |
| chatluna.memes.tagall [-f] | 为还没有标注的图片排队标注,-f 重新标注全部图片 |
| chatluna.memes.untagall [-c <表情包名>] | 清空全部或指定表情包的标注 |
除 list 外的命令需要 5 级权限。
🔁 从 memesluna 迁移
本项目是 fork lumia1998/memesluna 后修改并独立发布的插件。首次启动时会自动迁移原插件的数据,只执行一次。不需要迁移的话,在首次启用前把插件配置里的 migrateMemesluna 关掉;关闭后首次启动不迁移,之后再开启也不会补做。之前迁移中途失败过的话不能关闭,请保持开启并重启 Koishi 补完迁移。迁移内容:
- 设置:读取原插件在管理页保存的设置,没有则读取 koishi.yml 中原插件的配置。原来的默认前缀 /memesluna 改为 /chatluna-memes,自定义的前缀保留。
- 数据:复制 data/memesluna 中的图片,以及 memesluna_ 数据表中的表情包、外部图源和待审区记录。
- 原数据:不会删除,确认无误后可以手动删除 data/memesluna 和 memesluna_ 数据表。
- 停用原插件:迁移不需要原插件在运行。请先停用原插件再启用本插件,两者同时启用时路由会冲突。
- 预设:{memesluna} 改名为 {chatluna_memes},{endpoint} 改名为 {chatluna_memes_list},需要在预设中一并替换。
🔒 数据与安全
- 图片保存在 data/chatluna-memes,设置保存在其中的 .settings.json,记录保存在 chatluna_memes_* 数据表中。
- 启用了 auth 插件时,管理页的所有操作都需要登录有管理权限的控制台账号;没有启用时和控制台本身一样不设登录,管理页会弹窗提醒风险。
- 下载图片时拒绝直接指向内网 IP 的地址,并按文件内容判断真实格式,不信任扩展名。
- 管理页里的缩略图由浏览器直接加载。外链显示「无法预览」时,常见原因是防盗链、跨域限制或只有服务器能访问的内网地址,不代表机器人发图会失败。
📄 许可
本项目基于 MIT License 开源。
🙏 致谢
- memesluna(lumia1998):本项目的前身,表情包路由、外部图源、AI 标注和自动收集都源自它。
- Koishi:聊天机器人框架。
- ChatLuna:提供变量注入和标注用的模型。
- Photon:计算感知哈希,用于相似图片检测。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
CookSleep/chatluna-memes
为 ChatLuna 提供表情包:管理本地表情包和外部随机图源,注入随机图清单让模型发表情,支持 AI…
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,359已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,514已汉化DSH
71.8
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,289已汉化DSH
71.6
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 92,675已汉化DSH
71.2
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,522已汉化DSH
71
这是你的仓库?认领条目