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

插件开发套件 DEVbyQIN/dsh-plugin-kit

DeepSeek Harnessv0.1.0
DEVbyQIN32 天前有提交已提供中文文档扫描:含敏感能力

把「写一个 DSH 插件,从想法到开源上架」固化成可复用的 技能 + 模板 + 工具 + 踩坑库。

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

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

自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add DEVbyQIN/dsh-plugin-kit
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · market
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 32 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

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

✓npm 包dsh-plugin-kit @ 0.1.0
✓Node 引擎要求 ^22.19.0 || >=24 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/10 21:27:46

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

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

读写/删除本地文件
查看扫描证据(共 27 处,展示前 11 条)
  • 读取本地文件
    share/share.mjs:92
    const info = await lstat(path);
  • 读取本地文件
    share/share.mjs:107
    const target = await readlink(path);
  • 读取本地文件
    share/share.mjs:110
    realpath(raw).catch(() => raw),
  • 读取本地文件
    share/share.mjs:111
    realpath(expect).catch(() => expect)
  • 读取本地文件
    share/share.mjs:114
    const broken = !existsSync(raw);
  • 写入本地文件
    share/share.mjs:146
    await mkdir(join(path, '..'), { recursive: true });
  • 删除本地文件
    share/share.mjs:147
    if (current.state !== 'missing') await unlink(path);
  • 读取本地文件
    share/share.mjs:155
    const entries = await readdir(HUB_SKILLS, { withFileTypes: true });
  • 删除本地文件
    share/share.mjs:392
    if (existing === 'symlink') await unlink(into);
  • 删除本地文件
    share/share.mjs:412
    if (!DRY) await unlink(path);
  • 删除本地文件
    share/share.mjs:418
    if (!DRY) await unlink(entry);
扫描于 2026/11/2(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 插件脚手架生成
  • 跨宿主技能校验
  • GitHub发布上架

DeepSeek Harness 插件开发套件:一个技能、一份经过测试的仓库模板、一个脚手架、一个跨宿主技能校验器、一个 GitHub REST 发布器,还有一个踩坑合集。

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-kit 把「写一个 DSH 插件,从想法到开源上架」固化成可复用的 技能 + 模板 + 工具 + 踩坑库。 这不是一个插件,而是一套方法:知识放在 Markdown 里,自动化交给零依赖 Node 脚本,所以 DSH、Codex、Claude Code、Cursor 都能用同一份。 dsh-plugin-kit/ dsh-plugin-authoring/ ← 技能本体(DSH 与 Codex 都软链这一份) SKILL.md 七个阶段 + 12 条硬规则 + 交付标准 references/ 契约速查 · 踩坑库 · 验收清单 · 发布手册 template/ 一个新插件仓库的骨架(17 个文件,生成即全绿) tools/ 脚手架 · 跨宿主校验器 workflow/ 并行侦察脚本(DSH workflow) share/share.mjs ← 多宿主共享层管理(一份真身,多个入口) 快速开始 git clone https://github.com/QIN-SMART/dsh-plugin-kit cd dsh-plugin-kit 1) 接入 DSH(热监听,免重启) ln -sfn "$PWD/dsh-plugin-authoring" ~/.dsh/skills/dsh-plugin-authoring
展开完整文档(README 剩余 1 节)
dsh-plugin-kit

把「写一个 DSH 插件,从想法到开源上架」固化成可复用的 技能 + 模板 + 工具 + 踩坑库。

这不是一个插件,而是一套方法:知识放在 Markdown 里,自动化交给零依赖 Node 脚本,所以 DSH、Codex、Claude Code、Cursor 都能用同一份。

dsh-plugin-kit/
dsh-plugin-authoring/ ← 技能本体(DSH 与 Codex 都软链这一份) SKILL.md 七个阶段 + 12 条硬规则 + 交付标准 references/ 契约速查 · 踩坑库 · 验收清单 · 发布手册 template/ 一个新插件仓库的骨架(17 个文件,生成即全绿) tools/ 脚手架 · 跨宿主校验器 workflow/ 并行侦察脚本(DSH workflow) share/share.mjs ← 多宿主共享层管理(一份真身,多个入口)

快速开始

git clone https://github.com/QIN-SMART/dsh-plugin-kit
cd dsh-plugin-kit

1) 接入 DSH(热监听,免重启) ln -sfn "$PWD/dsh-plugin-authoring" ~/.dsh/skills/dsh-plugin-authoring

2) 接入 Codex(格式相同,可共用同一份) ln -sfn "$PWD/dsh-plugin-authoring" ~/.codex/skills/dsh-plugin-authoring

3) 生成一个新插件
node dsh-plugin-authoring/tools/new-plugin.mjs \
--dir ~/Documents/test/dsh-my-plugin --name dsh-my-plugin \
--title-zh "我的插件" --title-en "My Plugin" \
--desc-zh "一句话中文说明" --desc-en "One line in English" \
--author <你的 GitHub 用户名>

cd ~/Documents/test/dsh-my-plugin
node --test test/verify.mjs # 生成即全绿(13 项,不用改任何东西)

之后在 DSH 里用 /dsh-plugin-authoring 调用这套方法,在 Codex 里用 $dsh-plugin-authoring。

里面有什么

| 文件 | 作用 |
| dsh-plugin-authoring/SKILL.md | 主指令:七个阶段(定义 → 侦察 → 脚手架 → 实现 → 自测 → 文档 → 发布)+ 12 条硬规则 + 交付标准 |
| references/contracts.md | DSH 客户端插件契约速查:包结构、ModuleLoader、插槽表、稳定 DOM 钩子、设计令牌、宿主侧能力 |
| references/pitfalls.md | 踩坑库:每条都写全「症状 → 原因 → 正确写法 → 怎么验证」,覆盖模块与加载、样式、插槽、元数据、安装、发布、协作、多宿主共享 |
| references/checklist.md | 四张验收清单:实现 / 测试 / 开源就绪 / 上架后("外人视角"真装一次) |
| references/publish.md | 发布手册:GitHub REST API 路径(含空仓库引导)、npm 2FA 的两种活法、发布后传播延迟 |
| template/ | 能跑、能测、能发的插件骨架:真实可用的最小客户端插件 + mock-DOM 自测 + CI 矩阵 + 双语 README + 图标/locale + 发布脚本 |
| tools/new-plugin.mjs | 脚手架:按包名生成骨架并替换所有标识符(自动跳过 .tmp / node_modules 残留) |
| tools/validate-skill.mjs | 跨宿主校验器:同一份 SKILL.md 要同时通过 DSH 与 Codex 的规则(照抄两边真实实现,含"创作时校验"与"加载时校验"的区别) |
| workflow/recon.workflow.js | DSH workflow 脚本:并行三路侦察(契约 / 平台差异 / 分发路径),每个子代理边查边写结论 |
| share/share.mjs | 多宿主共享层:一份真身 + 每个宿主一条软链,还能审计"依赖宿主专有工具的技能不该共享" |

七阶段流水线

| 阶段 | 做什么 | 工具 |
| 0 定义 | 一句话产品描述;外观类插件先出可交互样例让人选 | visualize |
| 1 侦察 | 挂载点在哪个插槽/稳定钩子?会不会降级?平台差异? | references/contracts.md、workflow/recon.workflow.js |
| 2 脚手架 | 生成骨架 | tools/new-plugin.mjs |
| 3 实现 | 全部行为写进 lib/client.js;硬规则逐条对照踩坑库 | — |
| 4 验证 | 离线断言 + 真实 GUI 端到端(CDP 驱动、留截图) | node --test、tools/real-ui-check.mjs |
| 5 文档 | 双语 README、CHANGELOG、CI 徽章;安装段落只写对外方式 | references/checklist.md |
| 6 发布 | GitHub(REST API,绕开时通时断的 github.com)+ npm | tools/publish-to-github.mjs、references/publish.md |
| 7 验收 | 在临时目录按用户命令真装一次 | references/checklist.md |

多宿主共享(一份真身,多个入口)

DSH 读 ~/.dsh/skills,Codex 读 ~/.codex/skills,格式相同 —— 所以软链就够了,不需要任何同步:

中央目录(默认 ~/agent-shared,可用 AGENT_SHARED_HOME 覆盖)sh
node share/share.mjs add ~/Documents/test/dsh-plugin-kit/dsh-plugin-authoring
node share/share.mjs status # 链接对不对、有没有断链、哪些 skill 还没共享
node share/share.mjs audit <目录> # 审计一批 skill:哪些依赖宿主专有工具(不该共享)
node share/share.mjs sync <目录> # 只同步可移植的那些

它还会提醒你 ~/.dsh/AGENTS.md 与 ~/.codex/AGENTS.md 是否指向同一份真身(项目级 AGENTS.md 两个宿主本来就共用同一个文件,不需要处理)。

记忆层不适用软链方案:两边都是「数据库 + 自动生成的 markdown 投影」,直接改会被各自的浓缩流程覆盖或损坏 —— 只能走"读出来 → 只抽可移植事实 → 用各家正规写入路径写回"的桥接脚本。

它从哪来

不是凭空写的,是从两个真实插件里长出来的:

- dsh-sidebar-marks —— 侧边栏对话标记(整行淡色底 + 行尾彩点 + 独立字号);
- dsh-quote-to-chat —— 选中回复文字 → 浮动工具条(添加到对话 / 侧边提问 / 复制)。

两个都已在 GitHub 与 npm 发布,CI 覆盖 ubuntu / windows / macos × Node 22 / 24。踩坑库里的每一条都有真实现场,包括 export default 会静默吃掉 inject、DSH 的 hover 用 background 简写会重置 background-image、插槽会"让位"、空仓库不能用 Git Data API 建 blob、npm 2FA 与系统时钟偏差、以及长任务子代理被传输错误整轮吞掉后如何从会话日志里捞回结论。

验证这个仓库 sh

1) skill 本身要同时被两个宿主接受

node dsh-plugin-authoring/tools/validate-skill.mjs dsh-plugin-authoring/

2) 模板必须真的能生成、能跑(模板坏了没人会发现,因为它不是被直接执行的代码)

node dsh-plugin-authoring/tools/new-plugin.mjs --dir .tmp/dsh-demo --name dsh-demo --desc-zh 自检
node --test .tmp/dsh-demo/test/verify.mjs

CI 会在 ubuntu / windows / macos × Node 22 / 24 上跑同样的两件事。

License

MIT — 见 LICENSE。
预览分享卡片长什么样 ↓DEVbyQIN/dsh-plugin-kit
分享 · DeepSeek Harness Hub
DEVbyQIN/dsh-plugin-kit

把「写一个 DSH 插件,从想法到开源上架」固化成可复用的 技能 + 模板 + 工具 + 踩坑库。

这是你的仓库?认领条目

回到顶部