Plugin manifest reference
Every dsh manifest key the catalog reads, and what each one changes on your listing.
dsh.bundle β required
"dsh": { "bundle": { "patch": "./cordis.patch.yml" } }
Declares the package as an installable bundle and points at its patch layer. Without this key the package is a library, not a plugin, and is not listed.
dsh.client β optional
"dsh": {
"bundle": { "patch": "./cordis.patch.yml" },
"client": {
"platform": "web",
"inject": ["@deepseek-ai/dsh-client-runtime", "@deepseek-ai/dsh-client-ui-settings"]
}
}
platform: "web" earns the Web UI badge on your listing. inject lists the
client surfaces your plugin extends.
Fields read from the rest of the manifest
| Field | Effect on the listing |
|---|---|
name |
The catalog key and URL slug |
description |
Listing subtitle and meta description |
keywords |
Tags and category hints |
license |
Shown on the detail page |
repository |
Links the GitHub or Gitee mirror and its stars β optional |
homepage |
Extra link on the detail page |
Bundle vs profile manifests
Both are package.json files; the dsh sub-key is what distinguishes them.
| Manifest | Key | What it is | In the catalog? |
|---|---|---|---|
| Bundle | dsh.bundle |
An npm package shipping a config layer β what authors publish | Yes |
| Profile | dsh.profile |
A local composition of bundles in order, generated by the CLI under $DSH_HOME/profiles/<name> |
No |
A profile is a runnable thing, not a distributable one. It is produced by the install commands rather than written by hand, and it only exists on the machine that generated it β so profiles never appear in the catalog. The catalog indexes bundles.
Patch layer order
When a profile boots, its bundles' layers apply in the profile's bundle order,
@deepseek-ai/dsh-base first. On rows two bundles both patch, the later bundle
wins and replaces the whole row configuration rather than merging. The "layer
order" of a profile is therefore just the order of its bundles: reorder the
bundles and you reorder the layers.
Last updated 2026-08-22