# DSH Desktop: a local-first desktop shell for DeepSeek Harness

> DSH Desktop wraps the DeepSeek Harness runtime in an Electron app for macOS and Windows. It is an early preview, and the README is explicit that preview releases may break community plugins.

**dataelement/dsh-desktop** — DSHDesktop：DeepSeek Harness Desktop / DeepSeek Harness 桌面版

- Repository: https://github.com/dataelement/dsh-desktop
- Website: https://dshdesktop.com
- Stars: 9,957 · Forks: 392
- Language: TypeScript
- License: MIT
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/dataelement-dsh-desktop

## What DSH Desktop adds on top of DeepSeek Harness

DeepSeek Harness already ships an Agent runtime and a Web UI. DSH Desktop is a host around it, not a replacement. The README frames the split directly: Harness provides the runtime and the interface, and the desktop app supplies "the native host capabilities needed for a practical desktop product."

The audience follows from that. If you are content to start Harness from a CLI and open a browser tab, the shell buys you little. If you want the runtime to start and stop with an application, project workspaces picked through the system directory dialog, and model settings, sessions and plugins that survive an app upgrade, the shell is the point. The README also lists official DeepSeek models alongside mainstream third-party providers, so the app is not locked to one endpoint.

Two features go beyond hosting. The first is portable Agent presets: custom presets import and export as .dshpreset packages, with conflict checks and a trust warning before installation. The second is a PPT mode that turns source material into editable PPTX decks. Both are product decisions rather than runtime plumbing, and both are the parts most likely to change between releases.

## How the Electron shell, loopback runtime and paired phone bridge fit together

The architecture is a standard Electron split with a deliberate network boundary. Harness runs locally and its Web UI is served only on a random 127.0.0.1 port, so the runtime is not exposed on a fixed, guessable port. The renderer has no Node.js privileges and uses context isolation and sandboxing; webviews, untrusted in-app navigation and unexpected permission requests are blocked, and external links open in the system browser. Profiles and sessions live outside the application directory, under Electron's per-user application data, which is what makes upgrades non-destructive for user state.

Phone access does not tunnel the Harness port. The README states that Harness stays on its random loopback port and that phone access uses "a separate paired bridge." You choose Connect Phone... from the Harness menu and scan a pairing code, and the desktop approves the connection before the phone can reach sessions. The bridge can stay on the local network, or use a temporary Cloudflare Quick Tunnel when you pick remote access. If Cloudflare fails to start, the app falls back to Pinggy, and a Can't open? Try another link control switches a working-but-unreachable Cloudflare link over to Pinggy. Disconnecting the phone from the desktop invalidates the mobile session.

That fallback chain is worth reading as a design statement. A temporary public tunnel is the weakest link in the whole product, and the README treats it as such by offering a second provider and an explicit invalidation path.

## Installing DSH Desktop and running a first session

The README does not document a build-from-source install for end users. It points at the official website for the stable release and at GitHub Releases for preview builds marked Pre-release, and it recommends the stable release for everyday use. The repository itself is an Electron project with electron-vite and electron-builder, and package.json is marked private, so the published path is the installer, not an npm package.

Download and install the stable build for your platform. macOS releases are code-signed and notarized by Apple; Windows x64 installers are code-signed, and the README notes that Windows security warnings may decrease gradually as the publisher builds download and installation reputation.

After launch, the app starts Harness itself and opens the full Harness interface once the local runtime is ready. You do not start a separate CLI or open a browser tab. The first real task is adding a workspace through the native directory picker, which is the unit the Agent works against.

If a third-party plugin breaks startup or rendering, the documented escape hatch is a command-line flag. On macOS:

```sh
open -a "DSH Desktop" --args --safe-mode
```

That starts an isolated profile containing only official core bundles. The README states that the Agent, sessions, model settings and workspaces remain available while third-party plugins from the normal profile stay blocked, and that you can remove selected plugins or return to a normal launch from the Safe Mode banner. The same menu action is available as Restart as Safe Mode... when the normal interface still renders.

For PPT work, enable the PPT button, choose a template and describe the deck. The README says PPT is preinstalled and that its automatic instructions apply only to sessions where the PPT button is enabled. Previews use English, and decks can be English or Chinese; preview language does not determine output language.

## Updates, Safe Mode and the rollback the README does not describe

Installed builds check for updates shortly after startup and every six hours. A new version triggers a prompt before download, and installation begins only after you choose Restart and install. You can also check manually from the application menu or skip one version without hiding future releases. That is a reasonable consent model: the app never installs on its own.

What the README does not document is a rollback. There is no described path for returning to a previous version after an upgrade, and no documented way to pin an installed build to an older release. Users who treat the desktop app as production infrastructure should read that silence as the actual constraint, not the update cadence.

Safe Mode is the recovery surface, and it is narrower than a rollback. It isolates third-party plugins while keeping the Agent, sessions, model settings and workspaces available, and the recovery screens check for compatible plugin updates, with batch upgrades offered from Safe Mode. That helps when a plugin is at fault and a fixed version exists. It does not help when the regression is in the runtime itself, because the README pins the app to @deepseek-ai/dsh@0.1.2-rc.1 and describes that dependency as rapidly evolving.

The diagnostic trail is harness.log, which the README names as the place startup and frontend plugin failures are recorded. That is the first file to read when a launch fails, before reaching for Safe Mode.

## Preview releases, plugin compatibility and the wrong-tool cases

The README draws a hard line between stable and preview. Preview releases track the latest official DeepSeek Harness versions, may be incompatible with community plugins, and are "not recommended for general users." Updates reach the wider community only after validation by early adopters. If your workflow depends on community plugins, the preview channel is the wrong place to live.

The self-declared status is the other limitation. DSH Desktop is described as "an early preview built on the rapidly evolving @deepseek-ai/dsh@0.1.2-rc.1." That single sentence sets expectations for API churn, preset package formats and plugin behaviour. The .dshpreset import path already includes conflict checks and a trust warning before installation, which tells you the project expects preset packages from outside your own machine and treats them as untrusted input.

DSH Desktop is also the wrong tool if you want a headless or server-side deployment. The product is a desktop application: it starts Harness as a child of the app, serves the UI on a random loopback port, and uses native menus, titlebar behaviour, window focus, theme and branding adapted for macOS and Windows. Phone access is a paired bridge for continuing sessions, not a way to run the runtime on a remote host. And if you only need the Harness Web UI in a browser and already have a way to launch it, the shell adds an update channel, a plugin isolation mode and a signed installer that you may not need to maintain.

## How DSH Desktop differs from running DeepSeek Harness in a browser

The honest alternative is DeepSeek Harness itself, used directly. The runtime and Web UI are the upstream project; DSH Desktop is the host. Running Harness directly means you manage its lifecycle, you choose the port and the working directory, and you decide how profiles, sessions and plugins are stored and upgraded. Nothing about the Agent's behaviour changes.

The difference is everything the shell adds around that: automatic start and stop of the runtime, the native directory picker for workspaces, portable .dshpreset import and export with conflict checks, the PPT mode with its template catalog, persistence of profiles, plugins, workspaces, sessions and model settings across app upgrades, plugin failure detection with harness.log diagnostics and guided recovery, non-destructive Safe Mode, and the paired phone bridge with its tunnel fallback chain.

That is a real list, and it is also a maintenance surface. Choosing the shell means accepting an update channel you do not control, a pinned runtime version, and a plugin isolation mode you will occasionally need. Choosing upstream Harness means owning all of it yourself, with no signed installer and no guided recovery, but also no preview channel deciding when your runtime moves.

## Licence, maintenance and what the release history shows

The repository is MIT licensed, and package.json carries the same identifier for the project itself. MIT is permissive, so redistribution and modification are broadly allowed, but the desktop app bundles and pins @deepseek-ai/dsh@0.1.2-rc.1, and the licence of that upstream dependency is a separate question the README does not address. Anyone shipping a modified build should check the upstream terms rather than assume the MIT header covers the whole bundle. That is a diligence step, not legal advice.

Maintenance signals are visible in the repository. The last push was on 2026-09-10, and v0.8.0 was released the same day, following three release candidates between 2026-09-07 and 2026-09-08. The repository is not archived. The README also documents a release process in which preview builds go to early adopters first and reach the wider community after validation, which is a slower, more conservative cadence than the version numbers alone suggest.

Upgrade cost is mostly user-visible state, and the README says profiles, plugins, workspaces, sessions and model settings survive app upgrades. The recurring cost is plugin compatibility, since preview releases may break community plugins and the pinned runtime is described as rapidly evolving. The repository ships RELEASE_NOTES.md at the top level, which is where version-specific changes and any breaking behaviour would be recorded.

## Conclusion

Adopt DSH Desktop if you want a signed desktop host for DeepSeek Harness on macOS Apple Silicon, Intel or Windows x64, and you are comfortable with an early preview pinned to @deepseek-ai/dsh@0.1.2-rc.1. Do not adopt it if you need a documented rollback path for upgrades or a guaranteed-compatible plugin surface; the README documents update prompts and Safe Mode, but not how to revert a version. Verify three things first: that your machine matches the published targets, that the plugins you rely on survive a preview bump, and that the PPT catalog's 16 templates and 192 layouts cover the decks you actually produce.

## FAQ

### What does DSH stand for in DSH Desktop?

The name expands to DeepSeek Harness, and the repository description gives it as DeepSeek Harness Desktop. The app is a local-first, cross-platform desktop shell for the DeepSeek Harness runtime.

### Which platforms does DSH Desktop support?

The README badges list macOS for Apple Silicon and Intel, plus Windows x64. macOS releases are code-signed and notarized by Apple, and Windows x64 installers are code-signed, though Windows security warnings may decrease gradually as the publisher builds download and installation reputation.

### Is DSH Desktop the same as the DeepSeek Harness Web UI?

No. DeepSeek Harness provides the Agent runtime and Web UI, and DSH Desktop adds native host capabilities such as starting and stopping Harness, the native directory picker for workspaces, portable Agent presets, PPT generation, Safe Mode and phone access.

## Sources

- [dataelement/dsh-desktop on GitHub](https://github.com/dataelement/dsh-desktop)
- [License: MIT](https://github.com/dataelement/dsh-desktop/blob/main/LICENSE)
- [Project website](https://dshdesktop.com)
- [README](https://github.com/dataelement/dsh-desktop/blob/main/README.md)
- [Releases](https://github.com/dataelement/dsh-desktop/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/dataelement-dsh-desktop
