How to update DSH: npx, git pull, and dsh plugin update
Updating DSH is two separate things: the CLI itself (via npx or git pull) and its plugins (via dsh plugin --profile web update).
Know how you installed DSH
How you update depends on how you installed. DSH is in developer preview (currently 0.1.0-rc.6) and iterates fast, so releases land often (source). The two install methods update differently, and the plugin story is separate from the CLI story.
Method 1: npx one-liner for DSH
An npx install needs no manual update — rerunning fetches the latest. npx @deepseek-ai/dsh web pulls the newest version from npm every time you run it (source). So "updating" is simply running the npx command again at next launch. npx only pulls a temporary package — nothing is installed globally, so there's no "package upgrade" step: no need to uninstall the old version, and npm handles the leftover temp files. web is an alias for --profile web, so this command targets exactly the profile the Web UI runs.
Method 2: building DSH from source
For a source clone, pull the code, reinstall deps, and rebuild. Inside the deepseek-harness repo directory, run:
git pull
pnpm install
pnpm run build
pnpm dsh web
The last line boots the same Web UI you get from npx, but from your local build. The official docs stress that production runs require built package and frontend artifacts first, so don't skip pnpm run build (source). The first build fetches dependencies over the network and is much slower than npx — that's normal; later incremental builds are much faster.
Updating DSH plugins
Upgrade plugins with dsh plugin --profile web update. The command forwards its arguments to pnpm inside the profile directory, updating all dependencies:
dsh plugin --profile web update
To update a single plugin, add its package name:
dsh plugin --profile web update <package-name>
To see why a plugin is installed and who depends on it, use dsh plugin --profile web why <package> (source). Since dsh web is an alias for --profile web, this is the same profile the Web UI loads its plugins from; if you also run the headless profile, update its plugins separately with dsh plugin --profile headless update.
Before and after updating DSH
Back up session data before updating, and re-check plugin compatibility after. Concretely:
- Session data lives under
~/.dsh/sessions; copy it before updating. - DSH is a preview release with possible breaking changes — check a plugin's declared compatible version on its detail page before upgrading.
- After updating, run through your main flows; if a plugin stops loading, see DSH troubleshooting.
Source: official Quickstart, dsh CLI README, deepseek-ai/deepseek-harness
FAQ
It depends on how you installed. npx: rerun npx @deepseek-ai/dsh web for the latest. Source build: run git pull && pnpm install && pnpm run build in the repo.
Run dsh plugin --profile web update to upgrade all plugins in the profile, or add a package name to update just one. Arguments are forwarded to pnpm.
Possibly. DSH is a developer preview with breaking changes. Check each plugin's compatible version before upgrading, then run your main flows after.
Yes. Session data lives in ~/.dsh/sessions — copy it before updating so you can restore if something breaks.
With npx, every launch fetches the latest, so no extra check is needed. With a source build, git pull tells you. The current release is 0.1.0-rc.6.
Sources
- DeepSeek Harness documentation - Quickstart· deepseek-harness
- dsh CLI README· deepseek-ai
- deepseek-ai/deepseek-harness· GitHub