Skip to main content

Install your first plugin

Add capabilities to AI like installing apps: read every segment of the install command, install the hugely popular open-design, and dodge the GitHub build-authorization trap.

6 min read

After this tutorial you will

  • Understand how plugins get installed into DSH (it's one command)
  • Be able to read and adapt install commands
  • Have your first plugin installed and active

How plugin installation works

A DSH plugin is essentially a regular npm package, installed through the dsh plugin command. The experience is a lot like installing a phone app — except you type a command instead of tapping a button.

A typical install command:

dsh plugin --profile web add github:nexu-io/open-design

Piece by piece:

SegmentMeaning
dshThe DeepSeek Harness CLI entry
pluginThe plugin-management subcommand
--profile webWhich profile to install into (web is the one almost everyone has)
addInstall
github:nexu-io/open-designInstall nexu-io/open-design from GitHub

Which terminal? The one running dsh works, and so does a fresh terminal window — they're equivalent.

Where to find plugins

The plugin directory on this site indexes 4,000+ community plugins, sorted by stars and searchable, each with a detail page. Search engines work too — try "deepseek harness plugin" plus whatever feature you want.

Three rules of thumb when picking:

  1. Stars matter: high stars usually mean many users, so answers to problems are easier to find;
  2. Check freshness: DSH moves fast; a plugin untouched for six months may lag behind;
  3. Read the README: every plugin's detail page shows the full README — confirm it does what you expect before installing.

Hands-on: install open-design

open-design is the hottest plugin in the ecosystem (80k+ stars). With it, AI can produce slide decks, posters, and web mockups for you directly.

Step 1 — make sure dsh is running (the terminal window is open).

Step 2 — open another terminal and paste:

dsh plugin --profile web add github:nexu-io/open-design

Step 3 — wait for the install to finish, then restart dsh (Ctrl + C in the original terminal, run dsh web again) so the plugin loads.

Step 4 — refresh the browser and tell the AI: "make me a deck introducing DeepSeek Harness" — it will invoke the design workspace and deliver the files.

Install command variants

Every plugin's detail page on this site shows a copy-ready install command. They come in a few shapes:

# From GitHub (most common)
dsh plugin --profile web add github:nexu-io/open-design

# From npm (if published there)
dsh plugin --profile web add some-plugin-name

# From a local folder (when writing your own)
dsh plugin --profile web add ./my-plugin

The pattern is simple: add followed by the source. GitHub takes github:owner/repo, npm takes the bare package name, local takes a path.

The profile switcher at the top right of this site remembers your profile name and rewrites every install command shown here — set it first if you don't use the default web.

Install fails? It's usually this one trap

When installing from GitHub, an error mentioning a prepare script or allowBuilds is pnpm's safety mechanism at work (DSH manages plugins with pnpm, which by default refuses to run build scripts of unfamiliar packages).

Two steps fix it:

  1. Note the package name in the error (e.g. dsh-xxx), open ~/.dsh/profiles/web/pnpm-workspace.yaml, and add:
allowBuilds:
  dsh-xxx: true
  1. Re-run the add command.

This is you personally authorizing "this package may run its build script on my machine." Grant it only to plugins you trust — when unsure, check the repository source and stars first.

For more failure scenarios (permissions, network, command not found), see the FAQ.

How many should I install

Start with "install on demand": when you catch yourself wishing for a feature, search the directory for it. Installing dozens at once slows startup and invites conflicts — the joy of DSH is assembling it like LEGO over time, not buying out the store.

Next up

More plugins means more management: how to upgrade, how to uninstall, how to clean up?

Upgrading and uninstalling plugins →