dshbase

Plugin directory / Desktop / DSH-Desktop

DSH-Desktop

Verified · install-tested on dsh JustGenius-s

✓ Actively maintained 2 contributors Pure TypeScript

View on GitHub ↗ ← Back to plugin directory

21Stars
1Forks
0Open issues
TypeScriptLanguage
2026-09-14Last push
Cross-platformPlatform

What it does

DSH-Desktop

✅
Our take
Works — verified, growing community

DSH-Desktop It installs cleanly and boots without issues in our testing. It has a growing community — a solid choice.

“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.

README

DSH-Desktop app icon

English | 简体中文

DSH-Desktop

Electron desktop shell for DeepSeek Harness (DSH). Bundles node + pnpm, installs @deepseek-ai/dsh into ~/.dsh/runtime, and serves the dsh web UI in a browser window.

DSH-Desktop screenshot

Download & Install

Prebuilt packages are published on GitHub Releases. First launch installs the DSH runtime (~1-2 min).

macOS

  1. Download DSH-Desktop-*.dmg from the latest release.
  2. Open the .dmg and drag DSH-Desktop.app into /Applications.
  3. The app is unsigned, so Gatekeeper blocks the first launch. Right-click the app → Open and confirm, or run:
xattr -dr com.apple.quarantine /Applications/DSH-Desktop.app

Windows

  1. Download DSH-Desktop Setup *.exe (installer) or DSH-Desktop-*-win.zip (portable) from the latest release.
  2. Run the installer, or unzip the archive and launch DSH-Desktop.exe.
  3. The build is unsigned, so SmartScreen may warn. Click More info → Run anyway.

How it works

Electron main process
  ├─ bundled node + pnpm (resources/runtime; repo-root runtime/ in dev)
  ├─ first launch: pnpm installs @deepseek-ai/dsh → ~/.dsh/runtime (upgradeable)
  ├─ spawn  dsh web --host 127.0.0.1 --port <free-port>
  └─ BrowserWindow → http://127.0.0.1:<port>

DSH is installed from npm at runtime, not shipped with the app. Upgrading DSH = detect a newer version on launch → click "Update" → optionally restart the web service (the desktop app stays open). No rebuild or re-signing.

After a successful boot, the web port is saved in web-port.json under Electron's user-data directory. Cold starts reuse it when available so origin-scoped browser preferences survive restarts. If another process occupies that port, a new loopback port is allocated; the app never attaches to that process. Plugins must still persist durable data on the host to survive a port change. Development and installed apps keep separate port records.

Develop

pnpm install
pnpm collect      # download node + pnpm into runtime/
pnpm start        # first launch installs @deepseek-ai/dsh (~1-2 min)

Dev and packaged behave identically: both use the bundled node and the external ~/.dsh/runtime.

Tests (no Electron window or browser required):

pnpm test          # vitest for test/*.test.ts + node --test for test/*.test.cjs
pnpm typecheck

The TypeScript suites run under vitest; the *.test.cjs suites are plain
node:test (see vitest.config.ts, which deliberately excludes them).

Package

pnpm dist:mac     # macOS dmg + zip
pnpm dist:win     # Windows nsis + zip (run on Windows)

macOS artifacts are unsigned; Gatekeeper blocks first launch. Allow with:

xattr -dr com.apple.quarantine /Applications/DSH-Desktop.app

Runtime dependencies

  • node (latest) + pnpm (latest), bundled via scripts/collect-runtime.mjs
  • @deepseek-ai/dsh (npm latest), installed to ~/.dsh/runtime

Desktop plugin API

The shell injects window.dshDesktop into the DSH page (updates / seats / notify / overlays). Plugins should depend on that contract, not on Electron packaging code. See docs/desktop-api.md.

Our plugins

Companion DSH plugins live in DSH-Plugs.

Thanks to

Install

🧩 Let your agent install it (recommended)

Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:

dsh plugin add dshbase-catalog

Then say "install DSH-Desktop for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.

This plugin is GitHub source (not published to npm) — install it straight from the repo:

Web profile:

dsh plugin --profile web add github:JustGenius-s/DSH-Desktop

Headless (CLI) profile:

dsh plugin --profile headless add github:JustGenius-s/DSH-Desktop

Test report

Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.

When to use it

Run dsh as a native desktop app — its own window, tray icon, and shortcuts — instead of a browser tab.

Who it's for

Users who want an installed-app feel and system integration (tray, global hotkeys, auto-launch) on their OS.

For developers — extending it

The native shell is the seam — add global shortcuts, notifications, single-instance locking, or OS-specific behaviors.

Security: not yet scanned — our daily static scan will cover it shortly.

Share this badge

More in Desktop

Browse all 7797 plugins →