DSH Toolbox

DeepSeek Harness plugins

A dsh plugin is an npm package added to a profile; dsh plugin --profile <name> add <package> installs it and pnpm owns the rest.

This page covers both halves: 21 official packages (16 that make up a profile, plus 5 shared libraries the plugins build on), and 62 community plugins grouped by the problem they solve.

A profile is a stack of patch layers. dsh-base is the first layer every profile gets; dsh-web-app and dsh-headless add a surface on top of it. Everything else is a seam: a swap-in point for one capability, like the filesystem, the shell, or the sandbox.

The community half is grouped by the job it does — finding plugins, cost, sessions, skills, search, appearance, agents, remote access, output, system, automation, network, data, providers, git and editor, memory. Each card links to a page with its own install command and conflict note.

Install or remove one

Plugin management forwards to pnpm inside the profile directory, so argument order and package specs behave the way pnpm behaves.

dsh plugin --profile web add @deepseek-ai/dsh-otel
dsh plugin --profile web remove @deepseek-ai/dsh-otel

Three kinds of package

Bundles (dsh-base, dsh-web-app, dsh-headless) are patch layers named in dsh.profile.bundles. Seams (dsh-fs, dsh-shell, dsh-sandbox, dsh-compaction, dsh-session) provide one capability and are selected by the bundle that needs them. Shared libraries (dsh-home-paths, dsh-credentials, dsh-client-ui-primitives, @deepseek-ai/schemastery, @deepseek-ai/cordis) are not rows at all: they are the dependencies the other two are built on, so you never install or remove one on its own. The count covers the 16 packages that can be patched into a profile by themselves plus the 5 libraries worth a page of their own; other @deepseek-ai packages are pulled in as dependencies and are not given a page.

Versions and compatibility

A plugin declares a compatible dsh range through engines.dsh, or through its DSH peer dependencies. When the range does not include your runtime, the CLI skips the plugin and prints the requirement instead of booting something that may crash.

Official packages

Shared libraries (5)

Profile packages (16)

Find and install plugins

Cost and usage

Sessions and archives

Skills

Web search

Looks and themes

Multiple agents

Phone and remote access

Rich output

System and terminal

Scheduled automation

Network and proxy

Databases and assets

Model providers

Git and IDE

Memory

Common questions

Where do plugins get installed?

Into the profile directory: $DSH_HOME/profiles/<name>, as dependencies in its package.json.

Can I install the same plugin into two profiles?

Yes. Each profile has its own package.json and node_modules; they do not share installs.

What happens if a plugin is incompatible?

It is skipped with a message naming the requirement. You can update it or grant an exact-version exemption with dsh plugin allow-version.