Update DeepSeek Harness & DSH plugins: commands, restart

Update & UpgradePublished 2026-10-13Author: DeepSeek Plugin Market
DeepSeek HarnessDSH plugindsh update commandupdate commandsupgrade
How to update DeepSeek Harness and DSH plugins: re-run npx or run npm update -g @deepseek-ai/dsh, then dsh plugin --profile update, and restart to take effect.

How you update depends on two things: whether you are updating the DeepSeek Harness core or a DSH plugin, and how you installed it in the first place. The core needs a single command — re-run the launch command on the npx no-install path, or use npm update -g for a global install; DSH plugins update through the plugin market or dsh plugin --profile update; and the change only takes effect after a restart, with hangs and failures each having their own troubleshooting path. This article answers the question along three tracks: the core, plugins, and what to do afterwards.

Overview: four phrasings, one core-update command

Whatever you typed — "how to update dsh", "dsh update", "dsh update command" — you are really asking the same group of actions: update the core, update DSH plugins, and confirm the change took effect, and the commands are a fixed short list. Every phrasing, spaced or unspaced, points at the same package on npm, @deepseek-ai/dsh (source). Match your search to a row first:

What you searchedWhat you actually wantWhich command / track
how to update dshhow to upgrade the core and the pluginscore update + plugin update
dsh updatewhat the command is, how to check the versionnpx @deepseek-ai/dsh web or npm update -g @deepseek-ai/dsh
dsh update commandthe same command, phrased in Englishnpm update -g @deepseek-ai/dsh
deepseek harness update commandhow to update the corethe core-update command

A DeepSeek Harness core update is a single command: on the npx no-install path, re-running the launch command takes the latest version, while a global npm install runs npm update -g @deepseek-ai/dsh (source). The complete walkthrough — checking the version, running the update, clearing the cache, verifying — lives in the three ways to update dsh to the latest version and how to update DeepSeek Harness, step by step; this article does not repeat those commands, and instead moves on to plugin updates and how the change takes effect.

Updating DSH plugins: the market button and dsh plugin --profile update

Updating a DSH plugin has two equivalent routes — graphically you click the update entry in the plugin market of DSH Plugin Hub, and from the command line you run dsh plugin --profile <name> update; both edit the same dependency manifest inside the same profile directory, so you only need one. The mechanism of dsh plugin is that it forwards its arguments to pnpm inside that profile directory, which is why the update subcommand reads exactly like pnpm (source). The hard part is not the command but knowing which profile a plugin belongs to: each profile is a separate directory at $DSH_HOME/profiles/<name> (a data directory, ~/.dsh by default), plugin dependencies live in that directory's package.json, and dsh web is exactly an alias for --profile web — so every plugin you use in the Web UI belongs to the web profile.

  1. List what the current profile holds. Run dsh plugin --profile web list. Expected: the plugin inventory and versions for the web profile, confirming the plugin you want is there.
  2. Work out which profile the plugin belongs to. Recall the command name you launched with. Expected: dsh web maps to web, dsh --profile headless maps to headless — whichever profile holds the plugin is the name you use to update it.
  3. Update every plugin in that profile from the command line. Run dsh plugin --profile web update. Expected: pnpm raises every plugin in that profile's dependency manifest to its latest version.
  4. Update a single plugin from the command line. Run dsh plugin --profile web update <package-name>. Expected: only that one moves; the other plugins stay at their versions.
  5. Update graphically. Open Settings → Plugin Market → Installed; when a newer version is detected the list offers an update entry, and you confirm it. Expected: an in-place overwrite to the latest version, with no package name to type.
  6. Restart so plugins reload. Restart dsh web after updating. Expected: the new plugin versions are loaded (if dsh-hmr is running, they reload automatically).

How to choose between the two routes:

ItemMarket update buttonCommand line dsh plugin update
Best forSeeing that a new version exists, then decidingKnowing what to upgrade, or batching
Package name / profile to rememberNone — you pick in the UIYes — you write --profile and the package name
What it changesThe same profile manifest, overwritten in placeThe same profile manifest, overwritten in place
When it takes effectRestart (or automatic HMR reload)Restart (or automatic HMR reload)

Rather than memorising the profile name, cross-checking package names one by one, and going back to the terminal to confirm versions, install DSH Plugin Hub: update detection, one-click overwrite, and version checks all happen inside Settings → Plugin Market, upgrading in place once you confirm.

DSH Plugin Hub update confirmation

The market's management entry sits entirely under Settings → Plugin Market, where browsing, installing, updating, and uninstalling share one screen. If you would rather walk through every install method command by command, see DSH command cheatsheet.

After updating: restart to take effect; hangs and failures each have an article

Finishing an update is not the same as it taking effect: both the DeepSeek Harness core and DSH plugins load the new version only after the process restarts, reloading automatically when dsh-hmr is running (source). So as soon as the update command finishes, press Ctrl+C in the terminal to stop the old process and run the launch command again (npx @deepseek-ai/dsh web or dsh web), and the process comes back up on the new version. That is the update done; hangs and failures are not covered here — see the two troubleshooting articles below by symptom.

  1. The command sits still, seemingly stuck. See update stuck and work through deciding whether it is really stuck → interrupting safely → clearing caches → speeding up the network → retrying. Expected: you locate which step it hung on instead of reinstalling repeatedly.
  2. The command errors out and exits. See update failed and identify whether the error is in permissions, the mirror, or the build step. Expected: treated at the right layer instead of blind retries.

The full list of command arguments and exit codes lives in the DSH command cheatsheet.

Caveats and limits

The update commands are short, but the traps cluster at a few boundaries — note each one.

  1. The core and plugins are two separate tracks. A core update never moves plugins, and a plugin update never upgrades the core, so do not expect one command to do both.
  2. A wrong profile updates the wrong place. The --profile value decides which plugin stack is updated; dsh web updates web, and a headless profile must be updated on its own.
  3. The npx cache can lie to you. When the cache serves the old package, re-running changes nothing and it looks updated when it is not, so clear the cache first.
  4. The source path must rebuild. git pull only swaps code, while the runtime uses built artifacts, so skipping the build command makes you think "the update did not work".
  5. Read release notes during the developer preview. The official docs state plainly that breaking changes are coming, so check the compatible version on a plugin's detail page before upgrading and pin a version if needed.

Sources: dsh CLI README, @deepseek-ai/dsh on npm.

FAQ

How do I update DeepSeek Harness, and does the command differ between the npx no-install path and a global npm install?

DeepSeek Harness updates in one of two ways depending on your install: the npx no-install path takes the latest version every time you re-run npx @deepseek-ai/dsh web, while a global npm install needs npm update -g @deepseek-ai/dsh. Run which dsh first to tell which one you have, then compare dsh --version against npm view @deepseek-ai/dsh version to confirm the number moved.

Should I update a DSH plugin from the market button or the command line, and which profile does the plugin belong to?

Both routes update DSH plugins and change the same dependency manifest in the same profile directory, so doing either one is enough. Graphically you open the plugin market and click the update entry; from the command line you run dsh plugin --profile web update. A plugin belongs to the profile whose name you launched with, so dsh web means the web profile, and dsh plugin --profile web list shows exactly what it holds.

What do I do after updating DeepSeek Harness, and why did the update not take effect with the old version still showing?

After updating you must restart the process to load the new version, then confirm with dsh --version that the number has moved up. If the version still looks old, the usual causes are an npx cache hit on the previous package, fixed with npm cache clean --force, or a source checkout that skipped pnpm run build.

What are the dsh update command and the deepseek harness update command exactly?

The dsh update command and the deepseek harness update command point to the same official set: npm update -g @deepseek-ai/dsh for the harness (or a re-run of npx @deepseek-ai/dsh web), and dsh plugin --profile web update for plugins. All of them come from the dsh CLI README and share the @deepseek-ai/dsh package name.

Where do I look when a DeepSeek Harness update hangs, or when it fails partway through?

When a command sits still for a long time it is a hang, so work through deciding whether it is really stuck, interrupting safely, clearing caches, switching mirrors, then retrying; when it errors out and exits, identify whether the failure is in permissions, the mirror, or the build step. Both cases have dedicated troubleshooting articles, while this one only covers how to write the commands.

Related Terms

dsh --version
dsh --version is the DeepSeek Harness command that prints the version currently running, and it is the single entry point for comparing the version before and after an update. A global npm install and a source build both expose a global dsh command, while the npx no-install path uses npx @deepseek-ai/dsh --version instead.— dsh CLI README
npm update -g @deepseek-ai/dsh
npm update -g @deepseek-ai/dsh is the command that upgrades a globally installed DeepSeek Harness core to the latest version. It only touches the global package directory and never your user data directory, so updating the core leaves sessions and plugin configuration untouched.— dsh CLI README
dsh plugin --profile <name> update
dsh plugin --profile <name> update is the DeepSeek Harness command form for updating DSH plugins, and it forwards its arguments to pnpm inside the chosen profile directory. Without a package name it updates every plugin in that profile; with a package name it updates only that plugin.— dsh CLI README
profile
A profile is an isolated directory holding one ordered plugin stack in DeepSeek Harness, located at $DSH_HOME/profiles/<name> with its own package.json and plugin dependencies. dsh web is an alias for --profile web, so every plugin loaded by the Web UI belongs to the web profile.— dsh CLI README

Sources