Tianbaidi
dsh-plugin-scaffold
No description
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
dsh-plugin-scaffold
A starter DeepSeek Harness (dsh) plugin.
It demonstrates the four extension shapes a community plugin can use, shipped as a
working persistent note scratchpad: note_write / note_read / note_list / note_delete.
| Shape | Where in this repo |
|---|---|
Plugin with Config | src/index.ts — Schemastery schema, defaults, cordis.yml overrides |
| Tools | ctx.tools.register(defineTool(...)) — canonical JSON outputs + output.render |
| UI cards | presentCall / presentResult / presentationMeta — pure projections |
| Hooks | ctx.on('session/event', ...) — observe the agent loop |
Try it
You need a harness checkout (see README.md):
pnpm install && pnpm run build once, then:
pnpm dsh web --patch D:/download D/Deepcode/dsh-plugin-scaffold/cordis.yml
Open http://127.0.0.1:3081 and ask the agent to save a note called project-ideas about the scaffold, then list all notes.
Windows note: the plugin path in
cordis.ymlmust be afile://URL (file:///D:/...%20...), not a bareD:/...path — the ESM loader rejects the latter as schemed:.
Develop
pnpm install # installs the published @deepseek-ai peer packages
pnpm typecheck # strict TypeScript check against published .d.ts
pnpm test # vitest: config defaults, tool round-trips, limits, presenters
Hot reload: edit src/index.ts, save, and the running dsh web reloads the
plugin (registrations are effects and clean themselves up).
Make it yours
- Rename the package and the
nameexport insrc/index.ts. - Replace the note domain with yours — keep the Config/tool/card/hook shapes.
- Rebuild the
cordis.ymlname:file URL to point at yoursrc/index.ts.
Publish to the ecosystem
This project is already a bundle (dsh.bundle.patch in package.json), the
official distribution format: install it into any profile with dsh plugin add.
# from a dsh installation (npm or source checkout):
dsh plugin --profile my-profile add /path/to/dsh-plugin-scaffold
dsh --profile my-profile "save a note about the scaffold"
Windows note:
dsh plugin addforwards the path to pnpm, which splits on spaces — keep the package on a path without spaces, or use a tarball.
To share it with the community:
- Push this project to your own GitHub repository.
- Add the
dsh-plugintopic to your repo so the community can discover it. - Users can then install straight from GitHub (
dsh plugin --profile my-profile add github:you/dsh-plugin-scaffold). Thepreparescript buildslib/from source on install — pnpm will ask you to allowlist the build once (see the package-and-install tutorial). - (Optional)
npm publishto make it installable by name.
License
MIT