Ri0n72Y/dsh-plugin-practice ↗★ 0
dsh-plugin-practice
Practice bundle for learning DeepSeek Harness plugin development
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Ri0n72Y/dsh-plugin-practice说明文档
阅读完整 README ↗dsh-plugin-practice
用于学习 DeepSeek Harness / Cordis 插件开发的最小练习仓库。代码按课程逐步累积,同时也可以作为一个标准 DSH Bundle 安装进 profile。
当前内容覆盖:Plugin lifecycle、Tool、Config、Service / Consumer、Event。
当前结构
dsh-plugin-practice/
├── src/
│ ├── plugin.ts
│ ├── workspace-info.ts
│ ├── configurable-greet.ts
│ ├── workspace-name-service.ts
│ ├── workspace-name-tool.ts
│ ├── workspace-event-contract.ts
│ ├── workspace-event-emitter.ts
│ └── workspace-event-listener.ts
├── cordis.patch.yml
├── cordis.dev.patch.yml
├── package.json
├── tsconfig.json
└── tsdown.config.ts
cordis.patch.yml 是正式 Bundle 使用的 patch;cordis.dev.patch.yml 用于直接加载本地 TypeScript 源码。
环境要求
- Node.js
^22.19.0 || >=24.0.0 - pnpm(仓库声明
pnpm@11.7.0) - 本机已经安装可直接执行的
dshCLI
先运行:
dsh --help
确认 CLI 可用。
本地构建并安装
克隆仓库:
git clone https://github.com/Ri0n72Y/dsh-plugin-practice.git
cd dsh-plugin-practice
pnpm install
检查并构建:
pnpm run check
然后直接使用 DSH 官方插件管理命令安装当前 checkout:
dsh plugin --profile practice add .
dsh plugin 会负责初始化 / 更新 profile,并把声明了 dsh.bundle 的当前包加入 profile 的 bundle 列表。
检查最终组合配置:
dsh --profile practice --dump-config
启动:
dsh --profile practice
直接从 GitHub 安装
DSH 官方也支持直接安装 Git 仓库:
dsh plugin --profile practice add github:Ri0n72Y/dsh-plugin-practice
本仓库是 TypeScript 包,因此 package.json 提供了 prepare:Git 安装完成后由 pnpm 从 src/ 构建 lib/。
pnpm 10+ 默认会阻止 Git 依赖运行构建脚本。第一次安装如果 DSH / pnpm 提示需要授权,请按终端给出的包名在该 profile 的 pnpm-workspace.yaml 中加入 allowBuilds,然后重新执行安装。例如:
allowBuilds:
dsh-plugin-practice: true
只应对可信源码开放安装期构建权限。需要固定版本时,可以在 GitHub spec 后加 commit SHA。
Bundle manifest
package.json 通过官方约定声明当前包是一个 DSH Bundle:
{
"dsh": {
"bundle": {
"patch": "./cordis.patch.yml"
}
}
}
正式 patch 通过包导出路径加载构建后的插件: