DSH QQ 机器人插件市场索引 · 收录扩展包extension packs
36.4/100
综合分
5
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/31 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装。以下命令仍可尝试,但可能失败。
无法用 dsh 插件命令安装(仓库内无 dsh 插件清单)
git clone https://github.com/zaofan-make/dsh-qqbot-plugins.git按该仓库 README 的原生方式安装;若作者另行发布了 DSH 插件包,请以其文档为准
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · platform
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 4 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/26) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-qqbot-plugins(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/3 07:16:26
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 25 处,展示前 25 条)
- 读取本地文件packs/proactive-companion/lib/config.mjs:28
if (!existsSync(path)) return {}; - 读取本地文件packs/proactive-companion/lib/config.mjs:29
const value = JSON.parse(readFileSync(path, 'utf8')); - 写入本地文件packs/proactive-companion/lib/config.mjs:91
mkdirSync(dir, { recursive: true }); - 写入本地文件packs/proactive-companion/lib/config.mjs:96
writeFileSync(tmp, JSON.stringify(next, null, 2), 'utf8'); - 写入本地文件packs/proactive-companion/lib/config.mjs:101
renameSync(tmp, path); - 读取本地文件packs/proactive-companion/lib/config.mjs:105
if (existsSync(path)) unlinkSync(path); - 删除本地文件packs/proactive-companion/lib/config.mjs:105
if (existsSync(path)) unlinkSync(path); - 写入本地文件packs/proactive-companion/lib/config.mjs:106
renameSync(tmp, path); - 读取本地文件packs/proactive-companion/lib/config.mjs:110
try { if (existsSync(tmp)) unlinkSync(tmp); } catch {} - 删除本地文件packs/proactive-companion/lib/config.mjs:110
try { if (existsSync(tmp)) unlinkSync(tmp); } catch {} - 读取本地文件packs/proactive-companion/lib/config.mjs:118
if (!existsSync(path)) return ''; - 读取本地文件packs/proactive-companion/lib/config.mjs:120
for (const line of readFileSync(path, 'utf8').split(/ ? /)) { - 读取本地文件packs/proactive-companion/lib/session.mjs:57
if (existsSync(manifest) && JSON.parse(readFileSync(manifest, 'utf8')).name === packageName) { roots.add(dir); break; } - 读取本地文件packs/proactive-companion/lib/session.mjs:57
if (existsSync(manifest) && JSON.parse(readFileSync(manifest, 'utf8')).name === packageName) { roots.add(dir); break; } - 读取本地文件packs/proactive-companion/lib/session.mjs:64
if (!existsSync(file)) continue; - 发起网络请求packs/proactive-companion/lib/transport.mjs:55
const response = await globalThis.fetch(url, { ...init, signal }); - 写入本地文件packs/qq-avatar/lib/avatar.mjs:26
try { mkdirSync(dir, { recursive: true }); } catch { } - 读取本地文件packs/qq-avatar/lib/avatar.mjs:43
if (!existsSync(f)) return []; - 读取本地文件packs/qq-avatar/lib/avatar.mjs:46
for (const line of readFileSync(f, 'utf8').split('\n')) { - 发起网络请求packs/qq-avatar/lib/avatar.mjs:104
const res = await fetch(url, { headers: { 'User-Agent': 'Mozilla/5.0 dsh-qqbot' } }); - 写入本地文件packs/qq-avatar/lib/avatar.mjs:116
writeFileSync(path, buf); - 读取本地文件packs/volcengintts/lib/settings.mjs:63
return existsSync(guess) ? guess : home; - 读取本地文件packs/volcengintts/lib/settings.mjs:88
if (!existsSync(p)) return null; - 读取本地文件packs/volcengintts/lib/settings.mjs:89
const j = JSON.parse(readFileSync(p, 'utf8')); - 写入本地文件packs/volcengintts/lib/settings.mjs:193
mkdirSync(dir, { recursive: true });
扫描于 2026/11/3(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成DSH QQ 机器人插件市场
这是 dsh-qqbot 的插件索引仓库。
机器人面板里的「市场」页签读的就是本仓库根目录的 index.json。
收录规则
每个插件是仓库里一个独立目录(约定放在 packs/<id>/),目录结构与机器人本地的 extension-packs/<id>/ 完全一致:
packs/<id>/
qqbot-pack.json # 可选:{ name, author, version, description, homepage } tools/.mjs # 模型可调用的工具 commands/.mjs # / 开头的斜杠命令 hooks/ inbound/ outbound/ botplay/
然后在 index.json 的 plugins 里加一条:
{
"id": "your-pack",
"name": "你的扩展包", "author": "你的名字", "version": "1.0.0", "description": "一句话介绍", "repo": "zaofan-make/dsh-qqbot-plugins", "path": "packs/your-pack",
"tags": ["工具", "示例"],
"kinds": ["tools", "commands"],
展开完整文档(README 剩余 1 节)
DSH QQ 机器人插件市场
这是 dsh-qqbot 的插件索引仓库。
机器人面板里的「市场」页签读的就是本仓库根目录的 index.json。
收录规则
每个插件是仓库里一个独立目录(约定放在 packs/<id>/),目录结构与机器人本地的 extension-packs/<id>/ 完全一致:
packs/<id>/
qqbot-pack.json # 可选:{ name, author, version, description, homepage } tools/.mjs # 模型可调用的工具 commands/.mjs # / 开头的斜杠命令 hooks/ inbound/ outbound/ botplay/
然后在 index.json 的 plugins 里加一条:
{
"id": "your-pack",
"name": "你的扩展包", "author": "你的名字", "version": "1.0.0", "description": "一句话介绍", "repo": "zaofan-make/dsh-qqbot-plugins", "path": "packs/your-pack",
"tags": ["工具", "示例"],
"kinds": ["tools", "commands"],
"files": ["qqbot-pack.json", "tools/hello.mjs", "commands/hello.mjs"],
"cover": "https://raw.githubusercontent.com/zaofan-make/dsh-qqbot-plugins/main/packs/your-pack/cover.png"
}
files 必填,列出 path 目录下所有文件(相对路径)。安装时按这份清单逐个下载,不走 GitHub 目录 API —— 那个接口在墙内连不上。
⚠️ 带界面卡片(ui/)的包,files 里也要列上 ui/<卡片>/card.html 这些文件,否则装完卡片是空的。现有的 build-index.mjs 会自动扫全目录,不用手写。
kinds 表示包里带了哪几套扩展点(tools / commands / hooks / inbound / outbound / botplay / ui),面板据此显示标签。
cover 可选,卡片封面。两种写法都支持(2026-10-26 起):
// ① 外部图床链接(推荐:图不跟着仓库走,GitHub 抽风也不影响) "cover": "https://i.ibb.co/xxxxx/cover.png"
// ② 包内文件名(文件放 packs/<你的包>/cover.png) "cover": "cover.png"
- 写完整 URL 时原样保留,市场不会做任何镜像改写 —— 你自己挑的图床自己负责稳定性。
- 写包内文件名时,构建脚本会转成仓库地址(jsdelivr),面板再按 jsdelivr → gh-proxy → ghproxy → raw 四级降级。
- 都不写时,自动探测包目录下的 cover.png / cover.jpg / cover.webp / cover.gif。
- 建议用直链(https://xxx/a.png),别用需要跳转的分享页(https://xxx/view/123),面板的 拉不到图。
工具怎么写
// tools/hello.mjs
export default {
name: 'hello_pack',
description: '打个招呼',
inputSchema: { name: { type: 'string', description: '名字' } }, // ← 扁平写法!
run: async (args) => 你好,${args.name || '世界'},
};
⚠️ 是 dsh 的扁平写法:直接 ,不要包成标准 JSON Schema 的 (会被 以拒掉)。
命令怎么写
// commands/hello.mjs
export default {
name: ['hello', '你好'], // 可以是数组(多个别名)
description: '打招呼', usage: '/hello [名字]',
handler: (ctx) => 你好呀 ${ctx?.command?.raw || ''}, // ← 是 handler,不是 run;返回字符串
};
自定义设置面板(可选)
在文件里再导出一个 qqbotSettingsPage,面板里就会出现 ⚙,用户填的值会存成配置,执行时通过 ctx.config 读到:
export const qqbotSettingsPage = {
title: '我的设置',
schema: [
{ key: 'text', type: 'string', label: '回复文字', default: '你好' }, { key: 'times', type: 'number', label: '重复次数', default: 1 }, { key: 'on', type: 'bool', label: '启用', default: true }, { key: 'tags', type: 'list', label: '标签' }, { key: 'mode', type: 'select', label: '模式', options: ['普通', '高级'] }, ], };
自带界面卡片(可选,v1.11.0 起)
扩展包可以带自己的界面 —— 用户装完之后,设置页或悬浮球里会多一个页签,里面跑的是你写的 HTML。
放一个 ui/ 目录:
packs/<你的包>/ ui/ <卡片目录>/ card.html ← 必需 card.css ← 可选 card.js ← 可选
card.html 顶部注释声明元信息:
| 字段 | 说明 |
| slot | settings(设置页,全局一份)或 dock(悬浮球,每个机器人一份) |
| id | 可选,覆盖目录名。两张卡想共用一份配置就给相同的 id |
| title | 页签文字 |
| order | 排序,小的在前(默认 100) |
装包时自动归位:slot=settings 的卡片会被复制到用户的 {PROFILE_ROOT}/.qqbot-extensions/ui/<id>/;slot=dock 的留在数据根不用动。
只补不改 —— 用户改过的不会被覆盖。
卡片里能用的 API:
qqbotExt.getConfig('profile' | 'data') // 两级配置(全局 / 本实例)
qqbotExt.setConfig({...}, scope)
qqbotExt.store.load() / save(v)
qqbotExt.kernel.get('服务名') // 宿主服务
qqbotExt.api('/你的路由') // 你在 hooks 里 registerRoute 的接口
qqbotExt.cap('fs.read' | 'appendSilent' | 'text', ...)
qqbotExt.dock.sid / peerId / context() / history(n) // 仅 dock 卡
卡片跑在 Shadow DOM 里(样式与面板双向隔离、崩了只白自己那张卡)。
装完之后大概长这样(左边设置页、右边悬浮球):
设置页卡片
完整 API 和硬边界见插件仓库的 docs/extension-contract.md §1 末尾「第六套:ui/」。
想抄现成的:插件自带示例 examples/ext-ui/demo/(settings + dock 两套)。
提交新插件
加 packs/<id>/ 目录,然后在本地跑一次构建:
node scripts/build-index.mjs # 重新生成 index.json
node scripts/check-packs.mjs # 校验
提交时把 packs/ 和 index.json 一起带上。
许可
各插件版权归各自作者,本仓库仅作索引与分发。
怎么提交自己的插件
只加目录,不要改 index.json(它由 Action 自动生成):
packs/你的插件id/ ← id 只能用字母数字-_ qqbot-pack.json ← 元信息(必填) cover.png ← 可选,卡片封面(自动探测) tools/xxx.mjs ← 可选,给 AI 调用的工具 commands/yyy.mjs ← 可选,/命令
qqbot-pack.json 长这样:
{
"name": "我的插件", "author": "你的名字", "version": "1.0.0", "description": "一句话说明", "homepage": "https://github.com/你/你的仓库",
"tags": ["工具"],
}
提 PR 后会自动跑检查(manifest 字段、node --check、禁二进制、inputSchema 格式);合并到 main 后 Action 自动重建 index.json —— 不需要你自己维护文件清单。
两个人同时提 PR 也不会冲突,因为各自只加自己的目录。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
zaofan-make/dsh-qqbot-plugins
DSH QQ 机器人插件市场索引 · 收录扩展包extension packs
相关插件 · 平台集成
智能体工程课walkinglabs/learn-harness-engineering
一门项目制课程,教你搭建环境、管理状态、做验证、加控制机制,让 AI 编程智能体稳定干活。
★ 21,155已汉化DSH
71.7
视频翻译配音liuzhao1225/YouDub-webui
开源视频本地化工作台:导入视频,识别、翻译并逐句克隆原声,生成字幕和配音成片。
★ 5,778已汉化Cordis
71.4
失败经验库Ikalus1988/MisakaNet
📚 零依赖、由 git 支撑的微课程库,让 AI 智能体异步分享并检索经过验证的调试经验。| https://misakanet.org
★ 550已汉化DSH
71.2
桌面智能体工作区freestylefly/wesight
WeSight 是开源桌面控制台,面向本地 AI 智能体。它帮你安装或复用 Claude…
★ 933已汉化MCP
71
IM 机器人接入xmanrui/dsh-im
让 DeepSeek Harness 触手可及 Connecting DeepSeek Harness
★ 3,110已汉化DeepSeek 客户端
70.9
中国平台研究引擎Jesseovo/last30days-skill-cn
给 AI Agent 的中文互联网研究 Skill:检索 8 大平台最近 30…
★ 2,031已汉化DSH
70.7