dshplugin.devDeepSeek Harness Plugins
DSH Plugin Builder plugin logo
DeepSeek Harness Plugin

DSH Plugin Builder

1
Published by kingjly

Agent Skill that turns a capability into an installable DeepSeek Harness (dsh) plugin. | 把能力做成可安装 dsh 插件的 Agent Skill

Automation

Get this plugin

Review the source, then continue to the publisher.

Get this plugin
Share on X ↗

About this plugin

Source snapshot 8/13/2026

dsh-plugin-builder

License: MIT dsh

中文文档

An Agent Skill that writes installable DeepSeek Harness (dsh) plugins.

Tell it what capability you need. It first checks the official extension points: tool, hook, adapter, or not a plugin at all. If a plugin is warranted, it writes an independent npm package (with dsh.bundle in package.json) and tells you how to load it with --patch or dsh plugin add. Selection rules live in SKILL.md.

Pinned to dsh@0.1.0-rc.5 (47f943859bef60e4160492346772ded9b24f765a). dsh is a developer preview; APIs will change.

Install

Clone into a skills directory your client already scans. The folder name must be dsh-plugin-builder and it must contain SKILL.md:

git clone https://github.com/kingjly/dsh-plugin-builder.git
~/.claude/skills/dsh-plugin-builder/     # Claude Code
~/.grok/skills/dsh-plugin-builder/       # Grok
.agents/skills/dsh-plugin-builder/       # this project

Usage

Force this skill:

/dsh-plugin-builder Follow the official tutorial and write a greet tool in ./dsh-greet.

A plain “write a dsh plugin…” may also auto-invoke it. In Grok: /skills dsh-plugin-builder.

Say these up front:

  • what to add (not just “make a plugin”)
  • output directory
  • --patch first, or an installable bundle
  • env var names for secrets — do not paste live tokens

Defaults if you omit them: independent package, Host plane, TypeScript ESM, web profile, --patch first.

Examples

Tool (official first tutorial)

/dsh-plugin-builder Follow the official tutorial and write a greet tool in ./dsh-greet.

You should get a package with dsh.bundle. After starting the Web UI, “use greet to say hi to Ada” should call greet.

Hook (gate the existing bash tool)

/dsh-plugin-builder Deny bash if the command contains rm -rf /. Official bash is already there; do not register another.

Normal commands still run. Dangerous ones are denied and the model sees why.

Model endpoint (configure first)

/dsh-plugin-builder Use the OpenAI-compatible API at https://api.example.com/v1. Key is OPENAI_API_KEY. Prefer official dsh-llm-pi-ai; do not write an adapter first.

Config change only. No new adapter package. No secret material in files.

MCP

/dsh-plugin-builder GitHub MCP is already running locally. Attach it to dsh.

Mount official @deepseek-ai/dsh-mcp-client, one plugin per server. Do not rewrite those tools by hand.

Not a plugin

/dsh-plugin-builder Patch agent-loop so a failed turn retries.

Refuse. No package. Retry on tool execution, or use the official retry / guard plugins.

After it generates

Dev overlay. The plugin path in cordis.dev.yml must be absolute:

pnpm dsh web --patch ./cordis.dev.yml

On the published CLI, use dsh or npx @deepseek-ai/dsh instead of pnpm dsh.

Install into a profile:

dsh plugin --profile web add ./dsh-greet
dsh --profile web --dump-config

scripts/validate_dsh_plugin.py is a static check. It does not open the Web UI.

Do not use this skill to

  • Change agent-loop
  • Author a Claude / Grok SKILL.md
  • Build a standalone MCP server (use the official client to attach one)
  • Add a first-party package under packages/ in deepseek-ai/deepseek-harness

License

MIT