Back to DSH guides

DSH Plugin Installation Guide

How to Install DeepSeek Harness Plugins

Install DSH plugins into the correct profile, understand npm and GitHub install targets, inspect the composed plugin tree, and remove or troubleshoot plugins without guessing what Harness actually loaded.

DeepSeek HarnessDSH PluginsDeveloper Preview

Profile-scoped

Plugins are managed inside a named profile rather than being treated as one global extension set.

pnpm-backed

The DSH plugin command forwards package-management arguments to pnpm in the selected profile directory.

Inspectable

Use the composed config dump to confirm what the selected profile will actually boot.

01

Before You Install a DSH Plugin

DeepSeek Harness is built around named profiles. A profile is the composition that boots for a particular surface or workflow, and it owns its out-of-tree plugin dependencies. That means the first installation decision is not only which plugin to add, but which profile should receive it.

The official distribution includes Web and headless profile templates. Community projects may target those profiles or introduce their own profile such as a terminal UI. Read the plugin page or repository first and use the profile named by the author.

  • Confirm the target profile: web, headless, TUI, or another named profile.
  • Check the package or Git install target documented by the plugin author.
  • Review the plugin version, license, repository activity, dependencies, and security signals before executing third-party code.
  • Remember that DeepSeek Harness is currently in developer preview, so plugin compatibility can change between releases.
02

Install a Plugin with dsh plugin

The product CLI exposes a plugin-management mode that selects a profile and forwards the remaining package-manager arguments into that profile directory. In practice, the common operation is add followed by the package or Git spec.

If the dsh executable is already available on your PATH, use the short form. If you normally launch Harness through npm, the same command can be run through npx.

Installed dsh command
dsh plugin --profile web add <package-or-git-spec>
Run through npm without a global dsh install
npx -y @deepseek-ai/dsh plugin --profile web add <package-or-git-spec>

Use the exact target from the plugin author or the DSH Plugin Registry. A package name and a GitHub spec are not interchangeable unless the project supports both.

03

npm Package vs GitHub Plugin Spec

Published plugins commonly install from npm, while some community plugins are installed directly from a Git repository. Because the DSH plugin command delegates package management to pnpm, package specs supported by pnpm can be used when the plugin documentation provides them.

npm package

Best when the author publishes versioned releases to npm. It gives you a clear package name and normal package-manager version resolution.

GitHub / Git spec

Useful for repositories that are installed directly from source or publish a specific plugin path. Follow the repository’s documented spec exactly.

04

Verify What the Profile Will Load

After installation, inspect the composed profile instead of assuming that a successful package download means the plugin is mounted correctly. The config dump shows the plugin tree after bundle layers and user patches have been composed.

  • Look for the plugin or the rows inserted by its bundle patch.
  • Confirm the profile named in the install command matches the profile you actually boot.
  • Restart a long-running profile after installing or removing a plugin unless the project explicitly documents hot-loading behavior.
  • Run any plugin-specific health check or verification command supplied by the author.
Inspect the final Web profile composition
dsh --profile web --dump-config
Start the Web profile
dsh web
05

Remove or Troubleshoot a DSH Plugin

The plugin command forwards pnpm-style operations, so the same profile-scoped workflow can remove a package or explain why a dependency is present. When troubleshooting, separate package installation from composition: a package can exist in the profile while its bundle or patch still fails to load.

  • Package not found: verify the npm or Git spec and whether the author publishes that target.
  • Plugin installed but absent from the tree: inspect package dsh.bundle metadata and the composed config.
  • Plugin loads but the feature is missing: verify you installed it into the profile that owns the required UI or runtime services.
  • Breakage after a Harness update: compare the plugin’s supported DSH versions and current peer dependencies.
Remove a plugin from a profile
dsh plugin --profile web remove <package>
Inspect why a package is installed
dsh plugin --profile web why <package>
06

A Practical DSH Plugin Install Checklist

1. Pick the profile

Install into the same profile you will boot: Web, headless, TUI, or another composition.

2. Use the documented target

Copy the npm package or Git spec from the plugin’s current source documentation.

3. Inspect the tree

Run --dump-config and verify the expected plugin rows are present before relying on the feature.

4. Check runtime evidence

Review plugin-specific health checks and version compatibility evidence when it is available.

Primary references

This guide is grounded primarily in the current DeepSeek AI Harness repository and development documentation. Harness is still in developer preview, so exact commands and contracts can change with later releases.