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

插件骨架模板 mrkeyoe/dsh-hello-plugin

DeepSeek Harness
mrkeyoe8 天前有提交已提供中文文档扫描:未发现敏感能力

照抄最小插件骨架,快速注册宿主工具并验证接线

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add mrkeyoe/dsh-hello-plugin
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · dev
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 8 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

一个极简的 DeepSeek Harness(dsh)插件,注册一个宿主工具。可直接复制的骨架,清楚展示 dsh 插件需要哪些文件、每个文件负责什么。

README

由 DeepSeek 最新模型翻译生成
dsh-hello-plugin 一个最小可用的 DeepSeek Harness(dsh)插件:向宿主注册 hello_plugin 工具。 它不堆砌玩具 demo,而是把「一个 dsh 插件到底需要哪些文件、每个文件负责什么」压缩到能一眼看完的程度 —— 抄这份骨架改名即可起步。 - 零运行时依赖(@deepseek-ai/dsh-tools 由宿主提供) - 单一职责:一个工具、一个 effect、一处配置 - 附离线冒烟测试,不用启动 DSH 就能验证接线是否正确 目录结构 dsh-hello-plugin/ ├── package.json # 插件身份 + dsh.bundle.patch 声明 ├── cordis.patch.yml # 向 bundle 插入加载行(id / name / config) ├── lib/index.js # 宿主入口:export name / inject / apply ├── test/smoke.mjs # 离线冒烟测试(node test/smoke.mjs) ├── README.md ├── CHANGELOG.md ├── LICENSE └── .gitignore 四个必需文件各自的职责 | 文件 | 必需性 | 作用 | 缺了会怎样 |
展开完整文档(README 剩余 1 节)
dsh-hello-plugin

一个最小可用的 DeepSeek Harness(dsh)插件:向宿主注册 hello_plugin 工具。
它不堆砌玩具 demo,而是把「一个 dsh 插件到底需要哪些文件、每个文件负责什么」压缩到能一眼看完的程度 —— 抄这份骨架改名即可起步。

- 零运行时依赖(@deepseek-ai/dsh-tools 由宿主提供)
- 单一职责:一个工具、一个 effect、一处配置
- 附离线冒烟测试,不用启动 DSH 就能验证接线是否正确

目录结构

dsh-hello-plugin/
├── package.json # 插件身份 + dsh.bundle.patch 声明 ├── cordis.patch.yml # 向 bundle 插入加载行(id / name / config) ├── lib/index.js # 宿主入口:export name / inject / apply ├── test/smoke.mjs # 离线冒烟测试(node test/smoke.mjs) ├── README.md ├── CHANGELOG.md ├── LICENSE └── .gitignore

四个必需文件各自的职责

| 文件 | 必需性 | 作用 | 缺了会怎样 |
| package.json | 必需 | 包身份、main 入口、dsh.bundle.patch 指向 patch 文件 | 无法被 profile 当作 bundle 解析 |
| cordis.patch.yml | 必需 | 往 loader 树里插入一行 id + name,config 即 apply 收到的第二个参数 | 包被安装但永远不会加载 —— 表现为「装了没反应」 |
| lib/index.js | 必需 | Cordis 插件本体:export const name / export const inject / export function apply(ctx, config) | 加载行报错或插件空转 |
| LICENSE | 强烈建议 | npm / GitHub 上别人能否合法复用 | 法务上等同于「保留所有权利」 |

README.md、CHANGELOG.md、test/ 不是加载所必需,但没有它们的仓库没人敢用。

契约要点

export const name = "dsh-hello-plugin"; // 与 package.json 的 name 保持一致
export const inject = ["tools"]; // 依赖的服务;全部就绪后 apply 才会被调用
export function apply(ctx, config) { // config 来自 cordis.patch.yml 的 config 块
ctx.effect(() => { // effect 内的东西在插件卸载时自动释放
const dispose = ctx.tools.register(tool);
return () => dispose();
}, "label");
}

三个容易踩的点:

1. 必须把注册动作放进 ctx.effect(...)。直接 ctx.tools.register 也能跑,但插件卸载或该行被 disable 后工具不会注销,热重载会撞名。
2. inject 声明什么,apply 里才能直接用 ctx.<service>。想要别的服务(settings、webServer、llm),加进 inject 数组。
3. 工具要有 output.schema 和 render。缺 render 时返回值会以原始 JSON 落到对话里;render 应直接返回 ContentBlock[]([{ type: "text", text }]),不要返回裸字符串。

本地开发

离线验证接线(无需 DSH 运行)
node test/smoke.mjs

或
npm test

冒烟测试会在 node_modules/ 里造一个 @deepseek-ai/dsh-tools 的 identity stub —— 该包由宿主运行时提供,普通 node 解析不到。所以它证明的是接线正确,不是宿主行为正确。

装进自己的 DSH 验证

1. 链接进当前 profile(以桌面版为例,路径按实际 profile 调整)
cd ~/.dsh/profiles/desktop
npm install --no-save /path/to/dsh-hello-plugin

2. 把包名登记进 package.json 的 dsh.profile.bundles 以及在 dependencies 里加一行 "dsh-hello-plugin": "file:/path/to/dsh-hello-plugin"

3. 重启 DSH,然后在会话里让 agent 调用 hello_plugin

装好后 hello_plugin 会出现在工具列表里;cordis.patch.yml 的 config.greeting 改一行、重启,问候语就跟着变。

配置

| 键 | 默认值 | 说明 |
| greeting | 你好 | 问候语前缀,来自 cordis.patch.yml 中该行的 config 块 |

License

MIT
预览分享卡片长什么样 ↓mrkeyoe/dsh-hello-plugin
分享 · DeepSeek Harness Hub
mrkeyoe/dsh-hello-plugin

照抄最小插件骨架,快速注册宿主工具并验证接线

回到顶部