dsh update plugin: command & rollback for DeepSeek Harness

Update & UpgradePublished 2026-08-26Author: DSH Plugin Hub
DeepSeek HarnessDSH pluginupdate plugindsh plugin updateplugin update command
Update one DSH plugin with dsh plugin --profile <name> update <pkg> — the subcommand forwards arguments verbatim to pnpm. Covers core vs plugin commands, single-plugin steps, and rollback.

Update one DSH plugin with dsh plugin --profile <name> update <pkg>: the dsh plugin subcommand forwards its remaining arguments verbatim to pnpm, so pnpm's update semantics work as-is. First distinguish core updates from plugin updates, then follow the steps; when a plugin update fails, reinstall via DSH Plugin Hub or roll back.

First, the distinction: core update vs plugin update

Updating the dsh program and updating a DSH plugin are two separate command sets — do not mix them. The dsh core is the launcher plus built-in bundles; plugins are out-of-tree packages installed into a profile, so they update differently (source):

What to updateCommandNotes
dsh core (one-off run)npx @deepseek-ai/dsh webpulls the latest package on every run
dsh core (global install)npm update -g @deepseek-ai/dshupdates the globally installed dsh
dsh core (from source)git pull + rebuildpull latest in the repo directory
One plugindsh plugin --profile <name> update <pkg>updates a single plugin
All pluginsdsh plugin --profile <name> updateupdates every dependency in the profile

Key point: everything after dsh plugin --profile <name> is pnpm arguments — the official definition states that pnpm verbs such as add, remove, update, and why are forwarded verbatim (source).

Updating a single plugin, step by step

Updating one plugin without touching the others is simply naming the package in update. Work through these 5 steps:

  1. See which plugins have new versions first: pnpm's outdated checks the profile's dependencies, and dsh plugin forwards it directly:
    bash
    dsh plugin --profile web outdated
    
    The output's Current / Latest / Want columns show what can be updated.
  2. Update the single plugin:
    bash
    dsh plugin --profile web update dsh-memory
    
    Replace dsh-memory with your package name. pnpm updates only that package; other plugins stay untouched.
  3. Confirm the update: run dsh plugin --profile web outdated again — the target should disappear from the list, or the terminal should show no errors.
  4. Verify after the update: refresh the Web UI (or restart dsh web) and confirm the plugin still works.
  5. Pin an exact version: update only steps within the range; use add for an exact version:
    bash
    dsh plugin --profile web add [email protected]
    
    This updates the profile's package.json and installs that version.

When an update fails: fallback and rollback

Read the error type first, then choose a fallback — reinstall or roll back, do not keep retrying the same command. Handle it in order:

  1. Retry once: if the error is a timeout or a mirror that will not pull, retry or switch the mirror.
  2. Reinstall via DSH Plugin Hub: open Settings → Plugin Center in the Web UI — the community marketplace DSH Plugin Hub — find the plugin and reinstall with one click, bypassing command-line network issues.
  3. Roll back to the previous version: if the plugin misbehaves after an update, install the old version with add:
    bash
    dsh plugin --profile web add [email protected]
    
    After rolling back, check compatibility in the Plugin Center or with outdated so an old version does not mismatch the current DSH.
  4. Generic fallback for update failures: plugins distributed via git may fail to load after an update because the source lacks built artifacts. Install the npm build instead (add package-name without the github: prefix when the registry has an npm package), or check the plugin's compatibility status on DSH Plugin Hub.
dsh-plugin-hub · Confirm Update
DSH Plugin Hub update confirmation: one-click in-place update when a new version is detected

Notes

  1. Everything after dsh plugin is pnpm arguments — update, add, remove, why, outdated, and more all work (source).
  2. Always name the package when updating a single plugin; update without a package name updates the whole profile.
  3. Run dsh plugin --profile <name> outdated before updating to see the list first.
  4. Refresh or restart to verify after an update; roll back immediately if a plugin becomes incompatible.
  5. Use add package@version for an exact version; update does not jump major versions.
  6. For convenience, update a single plugin from the DSH Plugin Hub Plugin Center button — one click when a new version is detected.

Source: dsh CLI argument definitions (source), dsh CLI README, pnpm update documentation

FAQ

What command updates a DSH plugin?

dsh plugin --profile <name> update <pkg>. The dsh plugin subcommand forwards everything after it verbatim to pnpm, so updating one package is dsh plugin --profile web update <package-name>; run dsh plugin --profile web outdated first to see what has new versions.

Is updating the dsh core the same as updating plugins?

No. Core updates re-fetch the program itself (npx @deepseek-ai/dsh web pulls the latest, npm install -g users run npm update -g @deepseek-ai/dsh, source users git pull and rebuild); plugin updates use dsh plugin --profile <name> update <pkg>. The two do not affect each other.

How do I update just one plugin and leave the others alone?

dsh plugin forwards its arguments verbatim to pnpm, so naming the package in update updates only it: dsh plugin --profile web update dsh-memory. An update without a package name updates every dependency in the profile.

A plugin update failed. What should I do?

Check whether the error is network/mirror related and retry once. If it still fails, reinstall the plugin from Settings → Plugin Center in DSH Plugin Hub, or follow the rollback flow in update-rollback to return to the previous version.

How do I update a plugin to a specific version number?

pnpm update only steps within the declared range. To pin an exact version, install it with add: dsh plugin --profile web add [email protected]. This updates the profile's package.json and installs that version.

Sources