How to Fix DeepSeek Harness Install Errors
DeepSeek Harness builds are release candidates. Pin dsh@0.1.0-rc.11, clear the npx cache, and check which npm your Node.js install bundles.
Wetin DeepSeek Harness install really be
DeepSeek Harness install na one command: npx @deepseek-ai/dsh web. No installer dey, and no service dey wey you need configure. Most wahala wey people dey encounter 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 only dey answer for 127.0.0.1:3080 na separate problem from the ones for this page.
Two facts dey drive everything below. First, every version of @deepseek-ai/dsh wey dem don publish to npm so far na release candidate, and latest tag dey point to one of dem. As of 18 August 2026, na 0.1.0-rc.7 be the one, and dem publish am on 17 August 2026. Second, 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 disappear this week. Pin one 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 fetch package when e need am instead of installing am permanently.
Which Node.js version dsh need?
The repository root package.json dey declare "engines": {"node": "^22.19.0 || >=24.0.0"}, wey dem read on 18 August 2026 as version 0.1.0-rc.7. 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 -vNa this part dey surprise people. The published @deepseek-ai/dsh package no get its own engines field. Na only the monorepo root dey declare one, and dem no publish that root file to npm. So npm get nothing to check. E no print any EBADENGINE warning, and e no reject anything. For Node 20, the install fit look like say e work, but the failure go happen later when the loaded code touch syntax or API wey your runtime no get. No be one stable error string you fit search for, because the first line wey fail depend on which module load first. Read node -v instead of only reading the crash.
If your Node too old, nvm (node version manager) na the least invasive fix for VPS, because e dey install under your home directory and leave the system Node alone.
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 -vnode -v suppose now print version wey start with v24.. If the shell still dey report the old version, nvm shell function no load, so open new login shell and try again. Node 24.19.0 na the active LTS (long term support) release as of August 2026, and e better to target am for another reason wey the next section cover.
Why npx dey run different version every day?
npx @deepseek-ai/dsh web names no get version, so npx dey ask registry for wetin latest tag dey point to. That tag dey change. When DeepSeek publish 0.1.0-rc.8, the command wey dey your notes go start to run different code, without prompt and without changelog for front of you.
You fit inspect every part wey dey change from command line.
npm view @deepseek-ai/dsh dist-tags
npm view @deepseek-ai/dsh versions --json
npm view @deepseek-ai/dsh time --jsondist-tags dey show where latest dey point to now. For 18 August 2026, both latest and next dey point to 0.1.0-rc.7, so no separate stable channel dey wey you fit switch to. The versions list dey more interesting because e get gaps: 0.0.1-rc.1, 0.0.1-rc.2, 0.0.1-rc.5, 0.1.0-rc.2, 0.1.0-rc.3, 0.1.0-rc.6, 0.1.0-rc.7. Some numbers no dey for that sequence because dem never publish some release candidates. 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 dey true, depending on the npm wey you dey run.
npx get its own package directory, separate from the tarball cache, for folder wey dem call _npx inside the npm cache. Print the path and inspect am.
npm config get cache
ls "$(npm config get cache)/_npx"For many years, npx reuse anything wey e find there for bare package name and e no ask the registry again. npm 11.2.0 change this behaviour. When the spec na bare name or version range, npx now fetch the manifest and reuse the cached copy only when the resolved tarball match wetin the registry just return.
Na your Node release decide which behaviour you go get, because Node bundle one specific npm version:
- Node 20.20.2 bundle npm 10.8.2.
- Node 22.19.0 bundle npm 10.9.3.
- Node 22.23.2, wey be the newest 22 release, bundle npm 10.9.8.
- Node 24.19.0 bundle npm 11.17.0.
So the whole Node 22 line, wey the harness officially support, dey ship with 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 every time e run. One command, two behaviours, and none of dem go warn you. Ask the tool which version e be:
npx @deepseek-ai/dsh --versionHow to clear the npx cache
For npm 11.2.0 and newer, dedicated subcommands dey available.
npm cache npx ls
npm cache npx rm --forceWithout --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 all of dem.
For npm 10, those subcommands no dey, so delete the directory yourself.
rm -rf "$(npm config get cache)/_npx"npm cache clean --force no help for here. E clear _cacache, wey be 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 dey hold downloaded packages, while your harness state dey under $DSH_HOME/profiles/<name> and e no touch am.
How I fit pin exact release candidate?
Put the full version string, including the -rc.N part.
npx --yes @deepseek-ai/dsh@0.1.0-rc.7 web--yes important 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 its cache directory. For exact version, e compare am with the package id wey already dey installed there, then run am without any registry round trip. For npm 11.2.0 and newer, bare name go cost 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 --versionNo matching version found for @deepseek-ai/dsh@^0.1.0
Caret or tilde range no go work for this package. npm install -g @deepseek-ai/dsh@^0.1.0 go answer with error code ETARGET and the line No matching version found for @deepseek-ai/dsh@^0.1.0. The registry dey okay. Na semver rule cause am: version range no match prerelease version unless the range itself name a prerelease. Every published build of this package na -rc.N, wey be prerelease, so ^0.1.0 no match anything. Write the exact version.
This rule get useful side effect. Because ranges no fit move go new release candidate, you no get half-pinned state to reason about. You either dey use exact version, or you dey use moving tag.
I for use npx or install dsh globally?
Use npx for first look, because nothing dey remain except cache directory wey you don know how to clear. Use pinned global install for anything wey suppose still work after reboot, like coding agent wey you keep running for VPS.
The two fit show different result for server wey you don use both, so compare dem.
which dsh
dsh --version
npx @deepseek-ai/dsh --versionwhich dsh finding nothing immediately after successful global install almost always mean say npm global bin directory dey miss from your PATH. Run npm prefix -g to print the root, and the binaries dey inside bin folder under am.
One security note. npx dey fetch and execute code from registry anytime e resolve something new. For server, na real exposure, no be theoretical one. Pinning na part of the solution. The remaining part dey for how npm supply chain attacks reach server.
Developer preview mean wetin 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. Dem separate by four days. With this kind speed, instructions wey dem write one month ago fit describe command line wey no dey exist again, and this page sef dey included. Put date for every version claim wey you write down, including your own notes.
Two habits go make the preview easier to manage. 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-configThe other part of reproducibility na the profile. dsh --profile <name> boots 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. That directory na also where the harness reads 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 currently, meaning say changing your pinned version go change those bundles too. Out-of-tree plugins dey behave differently. Dem dey live inside the profile directory, and dsh plugin --profile <name> add <package> forwards its arguments to pnpm to install dem. So pnpm must dey your PATH, and dsh go clearly tell you when e no dey there. The profile own package.json na wetin pins those plugins, so complete pin cover two files, no be one.
This split 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 concern 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 go help.
Argument errors wey you go actually see
These ones come from the CLI parser itself, so dem stable across the release candidate line and each one dey name the exact problem.
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 na the subcommand wey no need any --profile, because e dey boot the shipped web profile for you.
error: --patch needs a path
You pass --patch without anything after am. You fit repeat the flag, and every occurrence dey take one file path.
error: --dump-config and --dump-default-config are mutually exclusive
Choose one. --dump-default-config dey print the shipped bundle layers and e no accept any --patch. --dump-config dey print the composed configuration for one profile. Both commands dey print and exit without starting the harness, so dem na the safe way to see wetin new release candidate change for your setup.
error: plugin needs pnpm arguments to forward (e.g. add <package>)
You give dsh plugin --profile <name> nothing to pass onward. If the subcommand no get profile, e go initialise the profile, then hand the remaining command-line arguments to pnpm. So e need arguments like add @scope/dsh-plugin-example.
FAQ
Which Node.js version DeepSeek Harness need?
Repository declare ^22.19.0 || >=24.0.0 inside its root package.json, wey dem read on 18 August 2026 for version 0.1.0-rc.7. So you need 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, e go fail when you run am. Check node -v first. Node 24 na better choice anyway because e bundle npm 11, wey fix npx version reuse.
How I go make npx 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 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 dey return error code ETARGET with the line No matching version found for @deepseek-ai/dsh@^0.1.0. Every published build na prerelease, like 0.1.0-rc.7, and semver range no dey match prerelease versions unless the range itself name one. Install the exact version string, including -rc.N suffix. Run npm view @deepseek-ai/dsh versions --json to see the versions wey dey exist, because the sequence get gaps where dem no publish some release candidates.
I suppose install dsh globally or run am through npx?
npx good for first look, because nothing dey remain except cache directory. A pinned global install like npm install -g @deepseek-ai/dsh@0.1.0-rc.7 good for anything wey must keep working, because version go only change when you change am. If dsh command no dey found after global install, npm global bin directory no dey inside your PATH, and npm prefix -g go print the root wey e dey under.
DeepSeek Harness stable enough to build on?
Not yet, based on wetin e describe about itself. README talk say project dey developer preview, e dey change fast, and compatibility-breaking changes go happen. Dem publish release candidates 0.1.0-rc.6 and 0.1.0-rc.7 four days apart for August 2026. Pin exact version and read --help from that pinned build instead of any guide. Put date for your own notes, so you go know when dem don become stale.