The “Everything Is a Plugin” philosophy of DSH (DeepSeek Harness) means developers frequently deal with configuration, module resolution, and debugging. dsh-plugin-development is a plugin whose entire content consists of a single skill: during installation, it registers the package’s skills/ directory as a skill root, bringing it into the agent’s skill directory along with the plugin.

Plugin Introduction

This plugin is maintained by gezi-wen and belongs to the workflow category. It is an MIT-licensed open-source tool designed to assist with the development, debugging, and publishing of DSH plugins.

Core Features

The plugin provides a toolkit covering the full DSH plugin lifecycle:

  1. Dual half-package skeleton: Provides the required package.json fields (main, exports["./client"], dsh.bundle.patch, dsh.client), cordis.patch.yml, and a hand-written ModuleLoader client half.
  2. Development against a fork: Provides a method for linking a fork to a throwaway experimental profile, along with three-stage validation (configuration composition → module resolution → real execution), clarifying the relationship between dsh plugin and the profile.
  3. Publishing and release: Supports pushing to GitHub or publishing to npm, and can deploy a new version to a running profile without touching the installed state.
  4. Pitfalls checklist: Lists common pitfalls, especially three issues encountered when host plugins run in PowerShell child processes (AMSI intercepting fat scripts, stdout encoding, and compile cache invalidation), as well as a troubleshooting chain for “the plugin is installed but the UI does not appear.”

Installation and Enablement

Install the plugin using the official command:

dsh plugin --profile web add dsh-plugin-development

During installation, the package’s skills/ directory is registered as a skill root.

Working Principle

The plugin uses the cordis.patch.yml mechanism for extension. Its layout includes package.json (defining dsh.bundle.patch), cordis.patch.yml, and the skills/ directory.

In cordis.patch.yml, the baseUrl inside !!js resolves to this package, so paths follow the installation location. The plugin depends on @deepseek-ai/dsh-skill-filesystem.

Applicable Scenarios and Notes

  • Applicable scenarios: Developers who need to build a DSH plugin skeleton, debug plugins, and manage the release process.
  • Notes: This plugin runs with the permissions of the current DSH process. Be sure to review the source code and license (MIT) before installing.

Conclusion

This plugin turns the DSH plugin development process into a set of tools, covering the entire chain from skeleton setup to publishing and release, and provides a troubleshooting checklist for common pitfalls.