SSD Nodes Learn Hosting plans →
How to do am Matt ConnorBy Matt Connor

How to Fix DeepSeek Harness Install and Version Errors

Every DeepSeek Harness npm build na prerelease. Pin exact dsh version, clear npx cache, and check the npm wey your Node.js version bundles before install.

Wetin DeepSeek Harness install really be

DeepSeek Harness install na one command: npx @deepseek-ai/dsh web. No installer dey, and no service dey configure. Most of the wahala wey people dey meet no be installation at all. Na version resolution be the issue: which build of @deepseek-ai/dsh npx decide to run today, and whether your Node.js version fit run am. When e start, the address wey e print dey bound to localhost, and why Web UI dey answer only for 127.0.0.1:3080 na separate problem from the ones for this page.

Two facts dey control everything wey follow. First, every version of @deepseek-ai/dsh wey dem publish to npm so far na prerelease. Most na release candidates (-rc.N), and since 30 August 2026, alpha builds (-alpha.N) dey too. The latest tag dey point to a release candidate. As of 6 October 2026, na 0.2.0-rc.2, wey dem publish on 29 September 2026. Second, the project README talk say the harness dey for developer preview, e dey change quickly, and compatibility-breaking changes go happen. Flag wey work last week fit don disappear this week. Pin a version before you build anything on top of am.

Make we explain some terms first. dsh na the DeepSeek Harness command line tool. Node.js na the JavaScript runtime wey e need. npx na the package runner wey come with npm (node package manager), and e dey fetch package when you need am instead of installing am permanently. If the word harness for that sentence no clear, an agent harness na program wey wrap around the model, e dey hold the loop, tools, permissions, and session state. Na why version number wey you no choose fit change how your agent dey behave.

Which Node.js version dsh need?

The repository root package.json declare "engines": {"node": "^22.19.0 || >=24.0.0"}, as at 6 October 2026, when repository dey version 0.2.1-alpha.1. So you need Node 22.19.0 or newer for the 22 line, or Node 24 and above. Node 20 no qualify.

Check wetin you get before you do anything else.

node -v
npm -v

Na here people dey usually surprise. The published @deepseek-ai/dsh package no get engines field for itself. Na only monorepo root get one, and dem no publish that root file to npm. So npm no get anything to check. E no print EBADENGINE warning and e no reject anything. For Node 20, installation fit look like say e work, but failure go happen later when the loaded code touch syntax or API wey your runtime no get. No single stable error string dey to search for, because the first line wey fail depend on which module load first. Read node -v instead of only looking at the crash.

If your Node too old, nvm (node version manager) na the least invasive fix for VPS, because e install under your home directory and leave the system Node as e be.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.6/install.sh | bash
exec $SHELL -l
nvm install 24
nvm use 24
node -v

node -v suppose now print version wey start with v24.. If shell still dey report the old version, nvm shell function no load, so open new login shell and try again. Node 24 na the active LTS (long term support) line as at 6 October 2026, and the newest release for that date na 24.21.0. E better make you target am for another reason wey the next section explain.

Why npx dey run different version every day?

npx @deepseek-ai/dsh web no get version, so npx dey ask registry for anything wey latest tag point to. That tag dey change, and e dey change often. 0.1.0-rc.8 arrive on 19 August 2026, two days after 0.1.0-rc.7, and by 6 October 2026 latest don move go 0.2.0-rc.2. Every time e change, the command wey dey your notes go start run different code, without prompt and without changelog for front of you.

You fit inspect every part from command line.

npm view @deepseek-ai/dsh dist-tags
npm view @deepseek-ai/dsh versions --json
npm view @deepseek-ai/dsh time --json

dist-tags show where latest point to now. On 6 October 2026, both latest and next point to 0.2.0-rc.2, while one third tag, alpha, point to 0.2.1-alpha.1. None of dem be stable channel wey you fit switch to. The versions list dey more interesting because e get gaps. On 6 October 2026, e get 30 versions, from 0.0.1-rc.1 reach 0.2.1-alpha.1. The 0.0.1 line jump from -rc.2 to -rc.5, the 0.1.0 line jump from -rc.3 to -rc.6, the alpha builds start from 0.1.2-alpha.2 and 0.1.3-alpha.2, and 0.1.4 no dey at all. Some numbers no dey because dem never publish some builds, and alpha builds plus release candidates dey mixed for the same list. If you guess the next -rc.N for deploy script, e go fail, so read the list instead of counting upward.

Why npx dey continue run old version?

Na the opposite complaint be this, and both fit happen, depending on the npm wey you dey run.

npx get im own package directory, separate from tarball cache, for folder wey dem call _npx inside npm cache. Print the path and inspect am.

npm config get cache
ls "$(npm config get cache)/_npx"

For many years, npx dey reuse anything wey e find there for bare package name and e no dey ask registry again. npm 11.2.0 change this behaviour. When the spec na bare name or version range, npx now dey fetch manifest and e only reuse cached copy when the resolved tarball match wetin registry just return.

Na your Node release decide which behaviour you go get, because Node bundle specific npm version:

  • Node 20.20.2 bundle npm 10.8.2.
  • Node 22.19.0 bundle npm 10.9.3.
  • Node 22.23.3, wey be the newest 22 release as of 6 October 2026, bundle npm 10.9.9.
  • Node 24.19.0 bundle npm 11.17.0.
  • Node 24.21.0, wey be the newest 24 release as of 6 October 2026, bundle npm 11.19.0.

So the whole Node 22 line, wey the harness officially support, ship npm wey old pass 11.2.0. For Node 22, bare npx @deepseek-ai/dsh web go continue run the release candidate wey e cache weeks ago. The same command for Node 24 go resolve again for every run. One command, two behaviours, and none of dem warn you. Ask the tool which one e be:

npx @deepseek-ai/dsh --version

Clearing npx cache

For npm 11.2.0 and newer, dedicated subcommands dey available.

npm cache npx ls
npm cache npx rm --force

Without --force, npm no go allow you wipe everything and e go print Please use --force to remove entire npx cache. Use npm cache npx ls first when you want remove one entry by key instead of removing everything.

For npm 10, those subcommands no dey exist, so delete the directory yourself.

rm -rf "$(npm config get cache)/_npx"

npm cache clean --force no help for this matter. E clear _cacache, the tarball store, and e leave _npx untouched. Na this separation make npm later add the npm cache npx subcommands. Clearing _npx no cost you anything permanent too: e hold downloaded packages, while your harness state dey under $DSH_HOME/profiles/<name> and nothing touch am.

How I fit pin exact release candidate?

Name the full version string, including the -rc.N part.

npx --yes @deepseek-ai/dsh@0.1.0-rc.7 web

The examples for this page dey use 0.1.0-rc.7. Substitute the build wey you don actually test. On 6 October 2026, the latest tag point to 0.2.0-rc.2.

--yes matter for script, because npx otherwise go print prompt before e install package wey e never see before, then e go wait for answer wey no go ever come.

Exact version na also the fast path. npx dey use the spec string wey you type as key for e cache directory. For exact version, e compare am with the package id wey don already install there, then run am without any registry round trip. For npm 11.2.0 and newer, bare name go cost you manifest fetch every time e start.

Global install dey pin the same way, and e give you short command.

npm install -g @deepseek-ai/dsh@0.1.0-rc.7
dsh --version

No matching version found for @deepseek-ai/dsh@^0.1.0

Caret or tilde range no fit match this package. npm install -g @deepseek-ai/dsh@^0.1.0 answer with error code ETARGET and the line No matching version found for @deepseek-ai/dsh@^0.1.0.. Registry dey okay. Na semver rule cause am: version range no go match prerelease version unless the range itself name a prerelease. Every build wey dem publish for this package na prerelease, either -rc.N or -alpha.N, so ^0.1.0 no match anything. Write the exact version.

This rule get useful side effect. Because ranges no fit drift go new release candidate, you no get half-pinned state to reason about. You dey either use exact version or moving tag.

Make I use npx or install dsh globally?

Use npx for first look, because nothing go remain except cache directory wey you don learn how to clear. Use pinned global install for anything wey must still work after reboot, like coding agent wey you keep running for VPS.

The two fit show different result for machine wey you don use both. So compare dem.

which dsh
dsh --version
npx @deepseek-ai/dsh --version

which dsh finding nothing immediately after successful global install almost always mean say npm global bin directory dey missing from your PATH. Run npm prefix -g to print the root, and binaries dey inside the bin folder under am.

One security matter. npx dey fetch and execute code from registry whenever e resolve something new. For server, this na real exposure, no be theory. Pinning na part of the solution. The rest dey for how npm supply chain attacks fit reach server.

Wetin developer preview mean for reproducibility

0.1.0-rc.6 come out on 13 August 2026, and 0.1.0-rc.7 come out on 17 August 2026. Na four days apart. The speed never slow down since then: dem publish 23 more versions between 19 August and 3 October 2026, including 0.2.0-rc.1 on 28 September and 0.2.0-rc.2 the next day. With this kind speed, instruction wey dem write one month ago fit describe command line wey no dey exist again, and this page sef dey inside that matter. Put date for every version claim wey you write down, including your own notes.

Two habits fit make the preview manageable. Pin the exact version for every command and every script, so rebuilding server go produce the same harness. Then read the help output from the pinned build instead of any guide.

npx @deepseek-ai/dsh@0.1.0-rc.7 --help
npx @deepseek-ai/dsh@0.1.0-rc.7 web --dump-config

The second part of reproducibility na the profile. dsh --profile <name> boot the profile wey dey stored for $DSH_HOME/profiles/<name>, while web and headless profiles create themselves from shipped templates the first time you use dem. Na that directory the harness still dey use read its API key, model, and endpoint settings, so pinned version and working configuration na two separate things wey you must set correctly. In-box bundles resolve from the dsh installation wey dey run at that time, so when you change your pinned version, those bundles change too. Out-of-tree plugins dey behave differently. Dem dey inside the profile directory, and dsh plugin --profile <name> add <package> forward its arguments to pnpm to install dem. So pnpm must dey your PATH, and dsh go clearly tell you when e no dey there. Every plugin wey you add go run with the same permissions your agent get, so e make sense to check wetin plugin fit reach before you install am. The profile own package.json na wetin pin those plugins, so complete pin cover two files, no be one.

That separation go sound familiar if you don keep Python tools for isolated environments on a server: you pin the tool and the things wey you add to am for separate places. Once the harness start, the next question normally na networking, no be versions. Na there reaching the dsh Web UI on a remote VPS and the longer walkthrough for installing DeepSeek Harness on a VPS take over.

Argument errors wey you go actually see

CLI parser na im dey generate these errors, and each one name the exact problem. Wording mostly remain the same across builds, but e no remain completely same, so dem check the messages below against 0.2.0-rc.2 on 6 October 2026.

error: --profile <name> is required

You run npx @deepseek-ai/dsh without subcommand or profile. The bare command dey boot profile, so e need name. dsh web dey work without --profile because parser dey read the first bare word as profile name, so e boot the shipped web profile for you.

error: --patch needs a path

You pass --patch without anything after am. This flag fit repeat, and each occurrence dey take one file path.

error: --dump-config and --dump-default-config are mutually exclusive

Choose one. For 0.2.0-rc.2, the build wey latest point to on 6 October 2026, the message name a third flag and dey read error: --dump-config, --dump-default-config, and --dump-config-schema are mutually exclusive, because --dump-config-schema, wey dey print the JSON Schema for profile entries and patches, don join the other two. --dump-default-config dey print the shipped bundle layers and e no accept any --patch. --dump-config dey print the composed configuration for a profile. All of dem dey print and exit without starting the harness, so na the safe way to see wetin new release candidate change under you.

error: plugin needs pnpm arguments to forward (e.g. add <package>)

You give dsh plugin --profile <name> nothing to pass forward. If subcommand no dey get arguments, e go initialise the profile, then pass the rest of the command line to pnpm, so e need arguments like add @scope/dsh-plugin-example.

FAQ

Which Node.js version DeepSeek Harness need?

The repository declare ^22.19.0 || >=24.0.0 for the root package.json, as e be on 6 October 2026, when the repository version na 0.2.1-alpha.1. So use Node 22.19.0 or later for the 22 line, or Node 24 and newer. Node 20 no go work. The published npm package no get engines field by itself, so npm no go warn you and no go block the install. Instead, the failure go show for runtime. Check node -v first. Node 24 na the better choice anyway, because e bundle npm 11, wey fix npx version reuse.

How I fit force npx make e use the newest dsh instead of cached one?

For npm 11.2.0 and newer, npx @deepseek-ai/dsh already dey check registry again for bare package name every time e run. For npm 10, wey every Node 22 release bundle, e no dey do that. Clear the npx cache with npm cache npx rm --force for npm 11, or delete the folder with rm -rf "$(npm config get cache)/_npx" for npm 10. Then confirm with npx @deepseek-ai/dsh --version. Note say npm cache clean --force dey clear another directory, so e no go fix this problem.

Why installing @deepseek-ai/dsh@^0.1.0 dey fail?

npm return error code ETARGET with the line No matching version found for @deepseek-ai/dsh@^0.1.0. Every build wey dem publish na prerelease, like 0.2.0-rc.2 or 0.2.1-alpha.1. A semver range no match prerelease versions unless the range itself name one. Install the exact version string, including the suffix. Run npm view @deepseek-ai/dsh versions --json to see the versions wey exist, because the sequence get gaps where dem never publish some builds.

I suppose install dsh globally or run am through npx?

npx good for first look, because nothing dey persist apart from cache directory. A pinned global install like npm install -g @deepseek-ai/dsh@0.1.0-rc.7 better for anything wey must keep working, because the version only change when you change am. If dsh command no dey found after global install, npm global bin directory no dey inside your PATH. npm prefix -g go print the root wey e dey under.

DeepSeek Harness stable enough to build on?

Not yet, based on the project own description. The README talk say the project dey developer preview, dey change fast, and go get compatibility-breaking changes. Dem publish release candidates 0.1.0-rc.6 and 0.1.0-rc.7 four days apart for August 2026. Dem publish 0.2.0-rc.1 and 0.2.0-rc.2 one day apart for September 2026. Pin one exact version and read --help from that pinned build, instead of reading am from any guide. Put date for your own notes, so you fit know when dem don become stale.