English | 简体中文
An unofficial open-source desktop app for DeepSeek Harness, designed to provide a simpler and more convenient desktop experience.
DSH Desktop does not reimplement any functionality; it wraps the official DSH Web in a native desktop window:
- One-click launch: No browser tab, no URL, no command line — double-click the desktop icon to enter the same runtime environment as the official Web.
- Feature inheritance: The official DSH Web serves as the host runtime, loading its full UI and plugin system while sessions, workspace data, and the plugin ecosystem are fully preserved; the Web plugin market component among the built-in plugins manages plugins for both the desktop and the Web version from a single place.
- Safe isolation: The renderer never receives direct Node.js, filesystem, or arbitrary command access; the Electron sandbox, contextIsolation, loopback-only navigation, and a whitelisted IPC layer form the isolation boundary.
- Simple upgrades: When the official DSH ships a new version, the desktop updates with a version bump and a rebuilt bundle. Existing
DSH_HOME, sessions, Agent Presets, and persistent plugins carry over unchanged.
The base build does not pile on features; it keeps the official Web experience and adds only the two enhancements most useful in a desktop context:
- Project panel: Beside the chat, it lists the files actually modified or produced by each reply. Multi-tab previews cover Markdown, HTML, source code, diff, CSV, PDF, images, and text, with split editing and conflict-aware atomic saves. Git workspaces show real status and per-file discard; non-Git directories use content snapshots (no
git init, nothing written into the project). Each reply records a recoverable snapshot, and restoring always saves the current state as a recovery point first. - Built-in plugins (optional install): Built-ins are offered as a selectable catalog rather than pre-installed. Available now: multiple color themes (Deep Ocean Blue, Aurora Green-Purple, Rose Sunset Pink, Warm Sand Amber, each with light and dark modes), a custom image background (native file picker, adjustable opacity, instant disable), and a lightweight writing assistant (drafting, rewriting, summarizing, translating). All support install, disable, and uninstall on demand.
The base stays light; extension capabilities are directly available:
- Built-in plugins keep growing: Official curated plugins ship through a trusted channel with integrity verification, and can be installed, disabled, or uninstalled without touching user content.
- Community plugin market: A fixed, verified copy of the community market component is included. Once enabled, Settings → Plugins → Plugin Market browses awesome-dsh-plugin.com — install, update, and uninstall community plugins centrally, with a bundled
pnpmso nothing needs to be installed globally. Installs go into the sharedDSH_HOMEand work in both the desktop and the browser version. - Scale on demand: Add capabilities from the built-in and community catalogs when needed; keep the base experience lean when not.
Download from GitHub Releases:
Apple Silicon (M-series):
The Intel (x64) build appears on the Releases page once the runner finishes.
On first launch, Control-click the app in Finder and choose Open. If macOS still blocks it, go to System Settings → Privacy & Security → Open Anyway. Signing and notarization are planned for a future release.
After the bundled community market component is mounted into the shared DSH_HOME, it manages plugins already installed on both the desktop and the Web side, and lets you browse and install newly added community plugins at any time:
DSH Desktop automatically selects an available runtime:
- Connect to an existing DSH service.
- Reuse a global
dshinstallation. - Reuse the system
npx/npmenvironment. - Fall back to the bundled DSH runtime.
Existing users can usually keep their original DSH_HOME, sessions, Agent Presets, and persistent plugins. New users do not need to install DSH or Node.js first.
Files actually modified or produced by a conversation appear below the relevant response. Clicking one opens it in a right-side multi-tab preview with a filename and close button; the chat layout shrinks instead of being covered. Previews support Markdown, HTML, source code, diff, CSV, PDF, images, and text, plus split editing with conflict-aware atomic saves. Git workspaces expose real status/diff/discard controls; ordinary non-Git directories use DSH Desktop content-blob snapshots instead, without running git init or writing metadata into the project. Both modes retain turn changes, full-context diffs, per-file undo, and recoverable snapshots; restoring a snapshot first records the current state as a recovery point.
Office files currently open through their system application; native DOCX/XLSX/PPTX rendering remains planned.
DSH Desktop bundles the community plugin market @sanqi-normal/dsh-webui-market-plugin (MIT, vendored at resources/market-plugin) and mounts it into the shared DSH_HOME on demand, so the DSH Web GUI gains a Settings → Plugins → Plugin Market tab that browses awesome-dsh-plugin.com and installs/uninstalls community plugins into the web profile.
- Manage it from two places: the desktop Plugin Center window (Web 插件市场 tab) and the Web settings bridge (内置插件 tab card in the GUI). Install, enable, disable, and uninstall are exclusive, transactional operations on
$DSH_HOME/cordis.patch.ymlplus$DSH_HOME/node_modules/@sanqi-normal/dsh-webui-market-plugin;$DSH_HOME/profiles/webis never modified. - Works without a global pnpm: the app bundles pnpm and provisions a PATH shim (
src/pnpm-runtime.js) that every DSH process inherits, so in-web installs succeed on Windows even when pnpm was never installed globally (npx/global/bundled launches). DSH services started manually from a terminal also fall back to the bundled pnpm under$DSH_HOME/bin. If pnpm is genuinely unavailable, the market reports a clear message instead of raw console garbage. - Common install problems are handled automatically: git-hosted build scripts are allowed (
dangerously-allow-all-builds); migrated profiles reuse their recorded pnpm store (npm_config_store_dir); lockfiles missing tarball integrity (bare GitHub archive URLs written by older pnpm) are rewritten togithub:syntax and the op is retried once. - Third-party warning: market plugins are written by community authors and run inside the DSH process with host privileges (files, network, commands). Only install sources you trust. The desktop app ships a fixed, digest-verified copy and refuses to operate on foreign or tampered content, but takes no responsibility for third-party plugin behavior.
- Restart required: changes take effect after the DSH web service restarts; running conversations are not interrupted.
- Provenance and reproduction:
resources/market-plugin/VENDORED.md— the Host half is upstream plus two DSH Desktop portability patches (bundled-pnpm PATH shim and human-readable pnpm errors), the Client half is an original redesigned UI under MIT.
Plugins built on official DSH/Cordis services, Host tools, UI slots, themes, and persistent Presets generally offer the best compatibility. Plugins that depend on fixed DOM structures, browser extensions, or development HMR require separate testing.
- Windows x64: Setup and portable builds are available and tested.
- macOS Intel / Apple Silicon: Unsigned test builds are published as prereleases. On first launch, Control-click the app in Finder and choose Open; if macOS still blocks it, use System Settings → Privacy & Security → Open Anyway. Signing and notarization are planned.
- Additional platforms may be considered in future versions.
npm ci
npm run check
npm test
npm startMore information:
This project is licensed under the MIT License. DeepSeek Harness, Electron, and other dependencies remain under their respective licenses.





