Double-click installers for DeepSeek Harness (dsh) — no Node.js, no npm, no terminal setup required.
DeepSeek Harness ships as an npm package: to try it you need Node.js ≥ 22.19 installed, then npx @deepseek-ai/dsh web and a several-minute dependency download. Many people just want to click an installer and go — the community has been asking for a standalone client.
This project is that installer. Each release bundles the official Node.js runtime and the official, unmodified @deepseek-ai/dsh npm package into a single native installer per platform:
download → install → dsh web
Unofficial community project. Not affiliated with or endorsed by DeepSeek. Everything inside is official upstream bits, repackaged verbatim — see What's inside.
Grab the file for your platform from the latest release:
| Platform | App (recommended) | CLI installer | Portable |
|---|---|---|---|
| macOS Apple Silicon (M1+) | dsh-<version>-macos-arm64.dmg |
dsh-<version>-macos-arm64.pkg |
.tar.gz |
| macOS Intel | dsh-<version>-macos-x64.dmg |
dsh-<version>-macos-x64.pkg |
.tar.gz |
| Windows 10/11 x64 | — | dsh-setup-<version>-win-x64.exe |
.zip |
Every release includes SHA256SUMS.txt for verification.
Open the .dmg, drag DSH.app to Applications, double-click. The app:
- starts the local
dsh webservice (or reuses it if already running on port 3080), - waits until it responds, then
- opens the UI as a chromeless app window — no address bar, no tabs — using Chrome or Edge in
--app=mode if either is installed, falling back to your default browser otherwise.
First launch of an unsigned app: right-click → Open → Open.
What DSH.app is, honestly: upstream DeepSeek Harness ships a Web UI only — there is no native desktop client. DSH.app is a launcher that runs the local service and presents that Web UI in an app-style window (still rendered by a browser engine). Server logs go to
~/Library/Logs/dsh-web.log.
-
Open the
.pkg. It is unsigned (community build, no Apple Developer certificate), so if Gatekeeper blocks it: right-click → Open → Open, or install from the terminal:sudo installer -pkg dsh-<version>-macos-arm64.pkg -target /
-
Done. Open a terminal:
dsh --version dsh web # Web UI at http://127.0.0.1:3080
No sudo? Use the portable .tar.gz instead — extract anywhere, run <dir>/bin/dsh.
Uninstall (macOS)
sudo rm -rf /usr/local/dsh /usr/local/bin/dsh
sudo pkgutil --forget com.github.codeanqiang-ma.dsh-
Run
dsh-setup-<version>-win-x64.exe. If SmartScreen warns (unsigned binary): More info → Run anyway. -
The installer is per-user — no admin rights needed. It installs to
%LOCALAPPDATA%\Programs\dshand addsdshto your PATH. -
Open a new terminal:
dsh --version dsh web
Uninstall (Windows)
Settings → Apps → dsh (DeepSeek Harness) → Uninstall. PATH is cleaned up automatically.
Each installer contains exactly two upstream artifacts, fetched from official sources at build time and checksum-verified, plus a 5-line launcher:
dsh/
├── node/ official Node.js runtime, from nodejs.org (SHA-256 verified)
├── app/ npm install @deepseek-ai/dsh@<version>, from registry.npmjs.org (unmodified)
└── bin/ launcher: exec node .../dsh/lib/bin.js "$@"
- Nothing is patched, recompiled, or injected.
- Every artifact is built in public by GitHub Actions — open any build log and read the exact commands.
- CI doesn't just build: it installs each package on a clean runner and runs
dsh --versionbefore anything is released. - Don't trust binaries? Build your own in one command (below) — the scripts are ~100 lines of shell/PowerShell.
Platform-specific builds exist because the dependency tree contains native modules (node-pty, koffi, ripgrep).
# macOS (run on matching hardware)
bash scripts/build-macos.sh arm64 # or: x64
# Windows
pwsh scripts/build-windows.ps1Artifacts land in dist/. Versions are pinned in versions.env.
Why is the installer unsigned? Code-signing certificates cost money (Apple: $99/yr). The checksums, public build logs, and one-command self-build are the transparency substitute. If the project gets traction, signing is the first upgrade.
Does this replace the official install?
No — it wraps it. npx @deepseek-ai/dsh keeps working; this is for people who don't have (or don't want) Node.js.
Is DSH.app a native Mac client?
No. Upstream only provides a Web UI. DSH.app starts the local service and opens that UI in a chromeless browser app window (Chrome/Edge --app= mode). It looks and feels like a client, but rendering is a browser engine — said plainly so nobody is misled.
How fast do new upstream versions land here? Packaging a new release is a one-line version bump + git tag; CI does the rest. Open an issue if a version is missing.
Web UI port already in use?
dsh web --port <n>.
DeepSeek Harness is a fast-moving developer preview. To package a new version: bump DSH_VERSION in versions.env, commit, tag v<version>-<build>, push. CI builds all six artifacts and publishes the release.
This repo: MIT. Bundled software keeps its own licenses — see NOTICE.md. DeepSeek Harness is MIT © DeepSeek; Node.js is distributed under the Node.js license.
If this saved you an afternoon, a ⭐ helps others find it.