← Back to home@eeyzs1

dsh-plugins

DeepSeek Harness (DSH) dynamic Cordis plugins

Stars
0
Language
JavaScript
Created
Aug 15, 2026
Updated
Sep 20, 2026

Introduction

dsh-plugins

DeepSeek Harness(DSH)动态 Cordis 插件集合。

⚠️ 动态插件不跨 DSH 重启。重启后如何恢复见 LOAD.md(一句「加载所有插件」即可)。

包含插件

完整索引见 PLUGINS.md(由 scripts/check.js 自动生成),当前有:

  • chime — 回合完成与互动提示音(纯 Client,Web Audio 合成 + 音量调节)
  • attach-files — 添加文件/目录到对话(📁 按钮 + 文件选择器)

两种分发形态

同一批插件以两种形态共存,packages/ 是活跃开发线,plugins/ 是可直接粘贴的动态插件版:

plugins/<id>/packages/<id>/
形态manifest + 函数体源码,经 cordis_define/cordis_run 动态加载npm 包(@eeyzs1/dsh-*),profile 常驻安装
安装见 LOAD.mddsh plugin --profile web add <路径>
校验node scripts/check.js各包自带 build.mjs(chime / attach-files 需先构建 lib/)

packages/ 下另有三个仅包形态的插件:browser-use(browser-use MCP 集成 + 无头/有头切换工具)、image-gen(智谱 CogView 文生图工具)、llm-transport-recovery(DeepSeek 传输故障两阶段恢复)。 两棵树的同名插件保持逻辑同步——修改其一(如 chime)时请同步另一棵,或明确注明分叉。

社区

仓库结构

dsh-plugins/
├── plugins/<id>/           # 每个插件一个目录
│   ├── manifest.json       # 元数据(idPrefix / name / purpose / entry / version)
│   ├── host.js             # Host 端源码(函数体 `return { apply(ctx) { … } }`)
│   ├── client.js           # Client 端源码(函数体,同规则)
│   └── README.md           # 该插件说明
├── scripts/check.js        # 校验所有插件 + 生成插件索引
├── manifest.schema.json    # manifest 字段约定(文档)
├── PLUGINS.md              # 自动生成的插件索引(勿手改)
├── LOAD.md                 # 一键重载指南
└── .github/workflows/      # push 时自动跑校验

加一个插件

快捷方式:复制 plugins/_template/ 改名即可(_ 开头目录会被校验跳过)。

  1. 建 plugins/<id>/ 目录(<id> 用 kebab-case,如 attach-files)。
  2. 写 manifest.json,字段约定见 manifest.schema.json:
    • idPrefix:3–6 个小写字母(cordis_define 的 plugin.idPrefix)
    • name / purpose:必填
    • entry:{ "host": "host.js", "client": "client.js" }(至少一个)
  3. 写 host.js / client.js:存函数体本身,直接整段粘到 code.host / code.client。
  4. 跑校验并提交:
node scripts/check.js     # 或 npm run check / pnpm check

校验

node scripts/check.js 会:

  • 校验每个 manifest 的必填字段与 idPrefix 格式;
  • 按 DSH 的函数体约定语法检查 host.js / client.js;
  • 重新生成 PLUGINS.md 索引。

GitHub Actions 在每次 push / PR 也会自动跑(.github/workflows/check.yml), 出错会亮红叉,保证不会把坏插件推上去。

加载一个插件

见 LOAD.md。一句话:读 manifest + host.js + client.js → cordis_define → cordis_run。

插件索引

见 PLUGINS.md(自动生成,勿手改)。

License

MIT