Back to home

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.

ShapeWhere in this repo
Plugin with Configsrc/index.ts — Schemastery schema, defaults, cordis.yml overrides
Toolsctx.tools.register(defineTool(...)) — canonical JSON outputs + output.render
UI cardspresentCall / presentResult / presentationMeta — pure projections
Hooksctx.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.yml must be a file:// URL (file:///D:/...%20...), not a bare D:/... path — the ESM loader rejects the latter as scheme d:.

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

  1. Rename the package and the name export in src/index.ts.
  2. Replace the note domain with yours — keep the Config/tool/card/hook shapes.
  3. Rebuild the cordis.yml name: file URL to point at your src/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 add forwards 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:

  1. Push this project to your own GitHub repository.
  2. Add the dsh-plugin topic to your repo so the community can discover it.
  3. Users can then install straight from GitHub (dsh plugin --profile my-profile add github:you/dsh-plugin-scaffold). The prepare script builds lib/ from source on install — pnpm will ask you to allowlist the build once (see the package-and-install tutorial).
  4. (Optional) npm publish to make it installable by name.

License

MIT