Install Plugins in DeepSeek Harness
Understand the Profile and Bundle boundary first, then add a reviewed package, handle pnpm install-time build prompts and verify the plugin after restart.
On this page
A community plugin appearing in a directory only means it can be found. Review its repository, package metadata, permissions, install scripts and recent maintenance before adding it to a Profile.
First understand Profile vs Bundle
A DSH Profile owns its own dependencies and Bundle composition. Installing a plugin into one Profile does not copy it into another. A package becomes a Bundle layer only when its package manifest declares the DSH Bundle metadata expected by the CLI.
Profile
The runnable composition under $DSH_HOME/profiles/<name>. Choose the Profile you actually intend to modify.
Bundle
A package that contributes a declared cordis.patch.yml layer to the Profile's startup composition.
Plain dependency
A dependency can install successfully without becoming an active Bundle. The CLI warns when it has no Bundle declaration.
Check pnpm before using dsh plugin
The normal npm quick-start does not require pnpm just to run npx @deepseek-ai/dsh web. Plugin management is different: the official dsh plugin command forwards package operations to pnpm, so pnpm must be available on PATH.
pnpm --versionIf that command is not recognized, install a compatible pnpm before trying to diagnose a DSH plugin error.
Review the package before installing it
- Confirm the repository and package belong to the author you expect.
- Read the README and the package's install/build scripts.
- Check what files, network endpoints, credentials or external executables it may use.
- Prefer an exact reviewed version or commit after review instead of blindly tracking a moving branch.
Plugin installation and plugin runtime are outside the model's prose response. Treat them like installing any other local software dependency.
Add the package to the intended Profile
The official generic form is:
dsh plugin --profile <name> add <package-or-git-spec>Use the actual Profile name you intend to change. Relative local paths are resolved from the directory where you invoke the command.
Open the author's repository or package page, verify the current installation instructions and pin the version or commit you reviewed.
If pnpm asks for allowBuilds, stop and review
Git-hosted source plugins can run a prepare build during installation. pnpm 10+ can block that build until the consuming Profile explicitly allows it. The first add can therefore fail with an allowBuilds hint and a pointer to the Profile's pnpm-workspace.yaml.
If—and only if—you have reviewed the source and intend to allow that install-time build, follow the key printed by pnpm/DSH in that Profile's workspace configuration, then re-run the add operation.
It is not a harmless syntax fix. You are permitting a dependency's install-time code to execute. Do not approve the entry merely to make the error disappear.
Restart after Bundle membership changes
A successful add, remove or update changes the Profile on disk, but a running Profile keeps the Bundle set it mounted at startup. Restart that Profile—or DSH Desktop if it owns the Profile—after Bundle membership changes.
Ordinary edits to Profile/home cordis.patch.yml can hot reload; adding or removing a Bundle crosses a startup boundary.
Verify the plugin actually became active
- 01
Confirm the intended Profile
Make sure you restarted the same Profile you modified.
- 02
Check the Bundle or capability
Verify the expected tool, preset option or provider appears. Installation success alone does not prove the feature is active.
- 03
Run a bounded test
Use a disposable workspace and a small task before granting the plugin access to an important project or credential.
Common plugin-installation failures
pnpm is not recognized
Install pnpm or fix PATH. The npm quick-start working does not prove plugin management has pnpm available.
First Git-based add fails with allowBuilds
Review the package's install scripts. If you approve the source build, add only the key pnpm printed to the Profile's pnpm-workspace.yaml, then retry.
The command succeeded but the plugin is not visible
Restart the Profile. Bundle membership is fixed for the current start.
The plugin is visible in one Profile but not another
Profiles own separate dependency/Bundle compositions. Install and review it separately for the intended Profile.
The dependency installed but no feature appeared
The package may not declare DSH Bundle metadata, or the Bundle may only register a dormant provider that still needs a matching preset/tool row enabled.
DeepSeek Harness CLI behavior reference. The current CLI documents pnpm forwarding, Bundle reconciliation, restart boundaries and Git-source allowBuilds behavior.