Initialize the project
Use the CLI to generate a complete plugin scaffold:
dsh-hub init my-plugin --repository your-name/my-plugin
# With a scoped package name
dsh-hub init my-plugin --name @your-scope/my-plugin --repository your-name/my-pluginProject structure
The generated project contains three core files:
package.json — contains npm metadata and the DSH manifest (dsh.bundle, hub listing info, compatibility declarations).
cordis.patch.yml — defines the plugin's Cordis entries, describing how the plugin registers itself in the system.
src/ — the plugin source code directory.
Validate locally
Before publishing, check all format requirements with the validate command:
dsh-hub validate my-pluginPublish to npm
After validation passes, publish like a normal npm package:
cd my-plugin
npm publishAppearing on the Hub
After publishing, the plugin will appear automatically in the next hourly sync cycle. You can also manually submit the package name on the plugins page for faster discovery.
To manage listing info (screenshots, categories, description), claim your plugin: sign in to the Hub, install the GitHub App on your repository, and after verification you can edit directly in the Dashboard.