An earlier claim that Harness has no desktop app is now out of date. That was true in August, and it no longer is.
What the desktop build is
The official page presents Harness as an open-source agent harness that you run as a desktop app or launch as a web UI from code. The page, still labelled Preview, says it is in public preview worldwide. The repository's desktop README describes the app as an Electron shell around the complete dsh Web application, not a separate chat interface. It loads the packaged web entry at dsh-app://app/ and forwards HTTP requests to an authenticated local Host.
Some practical consequences from the README:
- No fixed port. The Host listens on an OS-assigned port by default, so it cannot collide with the Web mode's 3080 or a reserved port. A
webserver.config.portpatch overrides this. Port numbers from guides for other run modes should not be applied to the desktop app. - Exact version lockstep. The README says Electron and
@deepseek-ai/dshalways carry the same exact version. A dsh upgrade is therefore a Desktop release, even when the shell code is unchanged. - Exclusive profile ownership. Electron owns
$DSH_HOME/profiles/desktopfor its whole run. The CLI cannot boot that profile, and an npm-installed dsh cannot change it. - What is shared. Product data under
$DSH_HOMEis shared with the CLI. Executable packages, plugin activation, lockfiles andnode_modulesare not.
Installers and update feeds
The official page links two installers: Windows x64 and Apple silicon. It does not link a build for Intel Macs.
OrcaRouter reports the following on 21 October. DeepSeek's page does not confirm any of it:
| Target | Size reported | HTTP status | Feed version |
|---|---|---|---|
| Windows x64 | 289,385,456 bytes | 200 | 0.2.1-rc.2 |
| macOS Apple silicon | 264,990,950 bytes | 200 | 0.2.1-rc.2 |
| macOS Intel | 289,480,824 bytes | 200 (unlinked) | 0.2.1-rc.1 |
All three files were reportedly last modified on 17 October 2026.
OrcaRouter also says the feeds are nightly.yml for Windows and nightly-mac.yml for macOS. Requests for latest.yml or latest-mac.yml returned 404. DeepSeek's own publishing notes, as OrcaRouter reads them, say every release publishes a nightly feed and only stable releases publish a latest feed. "Nightly" here is a channel name, not a daily build schedule. The Windows and Apple-silicon feeds served the same 0.2.1-rc.2 build.
These HTTP responses and dates are a snapshot, so treat them as true for 21 October only.
OrcaRouter also reports that the GitHub repository had 31 releases that day. All were marked prerelease, and none had binary attachments. I could not independently confirm those counts. It says builds come from DeepSeek's download host or npm.
Community sites add an outside perspective. One said the app's earlier 0.1.7-rc.2 build had an Intel Mac download URL that returned 404. That suggests the Intel target has been in flux for a while. These are third-party pages, not DeepSeek.
The Windows installer and uninstaller
Per the README, the Windows installer uses native NSIS pages and is restricted to the current user. It behaves as follows:
- Theme.
/THEME=light,/THEME=darkand/THEME=autoselect a palette explicitly. - Destination. Drive roots are rejected. A non-empty destination is accepted only if it is already a registered installation.
- Running app. A running executable at the install path triggers a prompt and stays running.
- Silent updates. They wait up to ten seconds for the app to exit, then stop with exit code 2 if it is still running. Scripted deployments need to quit the app first.
The uninstaller removes the Electron user-data directory, the %APPDATA% product directory and the updater download cache under %LOCALAPPDATA%. The README says the Harness home is never touched. That means ~/.dsh or DSH_HOME, which hold sessions, settings, credentials and plugins. --updated or /KEEP_APP_DATA keeps the Electron data too. Silent uninstalls remove the same data.
The practical upshot is that uninstalling and reinstalling is a safe way to repair a broken window without losing your work. It also means a full cleanup requires deleting the Harness home yourself.
The README adds that Windows 11's Start menu Uninstall entry opens the installed-apps list for Win32 apps, since only MSIX packages uninstall directly from there.
Bundled runtimes and disk use
The README says Desktop carries its own Python, Node.js and pnpm. Python includes numpy, pandas, python-docx, python-pptx, openpyxl, Pillow, lxml and XlsxWriter. The payload installs offline on first use under $DSH_HOME/dsh-runtimes/dsh-primary-runtime, normally ~/.dsh/dsh-runtimes/dsh-primary-runtime. Disk use after a week is therefore larger than disk use right after install. OrcaRouter's "several hundred megabytes" figure is its own estimate, not a vendor specification.
Settings and update tuning
The README says settings are read once at startup from desktop/settings.json inside Electron's userData directory. On Windows the default path is %APPDATA%\@deepseek-ai\dsh-desktop\desktop\settings.json. DSH_HOME does not relocate this file, which is easy to miss. OrcaRouter reports these defaults:
- Poll interval.
intervalMsis 600,000 ms. - Backoff cap.
maxBackoffMsis 3,600,000 ms and must be at least the interval. - Jitter. 0.2, clamped to the range 0 to 1.
- Idle limit. 60,000 ms per connection for update HTTP traffic. An active download has no total-time limit.
I did not independently verify these values against the README text I could see. Check the file on your own install before scripting around them.
Closing the window is not quitting
The README confirms the behaviour:
- Close hides. Closing the main window hides it. On Windows that means the close button, Alt+F4 or the taskbar's Close window command. The Host keeps running and tasks continue. The next show restores the same document, session, drafts and scroll position.
- Windows tray. Windows asks for acknowledgement before the first hide and records
background-close-confirmedunder Electron userData. It keeps a tray icon for the whole run. Its menu offers Open and Quit. - macOS. There is no menu-bar icon, and the window returns via the Dock icon, a second launch or
dsh://open. - Quit is separate. The shell checks the Host for running work before quitting. OrcaRouter lists the checks as running agents (including subagents and ones awaiting approval), queued messages, running or stopping jobs and armed scheduled reminders. If any exist, you get a confirmation dialog. A Host that never reached ready quits without asking.
- Failure handling. The repository notes say that if the inspection errors out or exceeds a two-second limit, the Host is treated as having active work.
For long agent jobs, this is the main reason to prefer the desktop app over a browser tab. It also means a closed window is not a stopped process. Check the tray before assuming a job has ended.
The dsh command and ordering
The app menu's Manage dsh Command… entry sits directly under Check for Updates… and offers Install, Repair and Remove. On Windows it registers the command in the current user's PATH and preserves other PATH entries. On macOS it creates /usr/local/bin/dsh and requests administrator authentication if needed. Open a new terminal afterward and run dsh --version.
Two rules from the README:
- Run Remove before uninstalling Desktop, because the uninstaller does not remove the CLI registration.
- After moving the app, use Repair on macOS or Install from the new location on Windows.
To manage plugins in the desktop profile, follow this sequence:
- Launch Desktop once to initialise its profile.
- Fully quit the app.
- Run
dsh plugin --profile desktop add <package>.listandremovework the same way. - Reopen Desktop to use the change.
The README says the installed command refuses an uninitialised Desktop profile rather than creating an ordinary CLI profile in its place.
Sign-in, signing and crash logs
The OrcaRouter piece says account sign-in is not connected yet, and the Sign in button is disabled. Instead, the first run offers an API-key form, so plan on bringing a key. The README describes a Host-owned PKCE flow with a temporary loopback callback for the Sign in path.
On code signing, the README mentions a signed application and EV configuration. OrcaRouter reports its own check of the Windows installer:
- Chain. The Authenticode signature chains through GlobalSign to a certificate issued to Hangzhou DeepSeek Artificial Intelligence Co., Ltd.
- Timestamp. It reads 2026-10-17T09:22:04Z.
- Hash. The file's SHA-512 matches the update feed's hash.
OrcaRouter did not verify macOS notarisation. A community Electron wrapper's README, by contrast, said its own Windows installers were unsigned, and it carries a SmartScreen warning. That is a different, unofficial project, so don't conflate it with DeepSeek's build. Even so, I would still verify the signature on your own machine rather than rely on a third party's report.
Crash reports follow the pattern crash-<time>-<source>.log. On macOS they go to ~/Library/Logs/DeepSeek Harness. On Windows they go to a logs directory under the Electron userData path. Startup keeps the ten newest and removes older ones. If you are chasing an intermittent fault, copy the folder before it rotates.
The OrcaRouter report also says a corrupted cordis.patch.yml is renamed to a .bak-<timestamp> file without being parsed, and the app starts from defaults. The README excerpts available to me did not show that detail, so I'm attributing it to OrcaRouter alone.
Who should install it
Install the desktop app if you want an agent that keeps working with the window closed, runs scripts on your machine and needs no separate Node.js install. It suits people who would rather not live in a terminal.
Skip it if you only need one model through an API. The desktop build adds a profile directory, bundled runtimes and a background process. The CLI or npm route is still the right choice for servers, containers and scripted setups.
Cautions:
- It is a preview with a single update channel and no stable opt-in.
- Intel Mac users have no linked official build.
- Account sign-in is not connected, so you need an API key.
- OrcaRouter is a model-routing service with its own interest in steering readers toward APIs, so weigh its "skip the installer" advice accordingly.
Enterprise admins should also note the README's own caveat. Passing smoke checks does not establish compatibility with every enterprise code-integrity policy.
References
- Aplikacja desktopowa DeepSeek Harness: instalatory, aktualizacje i co zapisuje - OrcaRouter OrcaRouter · 2026-10-21T11:41:17.367000+00:00
- GitHub - salathleizhang/deepseek-harness-desktop: Native desktop app for DeepSeek Harness — an Electron shell that runs the harness locally and hosts the official Web GUI unchanged. · GitHub github.com
- README.md github.com