deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
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:
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 enhancements most useful in a desktop context:
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.The base stays light; extension capabilities are directly available:
pnpm so nothing needs to be installed globally. Installs go into the shared DSH_HOME and work in both the desktop and the browser version.| Way | For whom | What you get |
|---|---|---|
| One-click installer | Most users | Double-click to install and run; no environment needed. Your own data is used (DSH_HOME, sessions, plugins), but DSH is started by the desktop's bundled runtime |
| Connect mode | Users with Node.js who want the full official DSH | Not just your data — the DSH Web itself is also started by you with the system Node (npx pulls the latest release); the desktop only connects as a shell and never uses the bundled runtime |
Both ways share the same data (DSH_HOME, sessions, plugins) and can be switched freely. Developers can also run from source; npm start uses auto mode and prefers the system environment.
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:
dsh installation.npx/npm environment.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.
$DSH_HOME/cordis.patch.yml plus $DSH_HOME/node_modules/@sanqi-normal/dsh-webui-market-plugin; $DSH_HOME/profiles/web is never modified.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.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 to github: syntax and the op is retried once.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.
The one-click installer keeps your data (DSH_HOME, sessions, plugins), but the DSH process is started by the desktop's bundled fixed version (rc.6) as Electron-as-Node. Connect mode goes further: the DSH Web itself is also started by you with your own system Node (npx pulls the latest official release), and the desktop only connects as a shell — data, process, and version are all under your control.
DSH Desktop is only a shell — by default it picks a runtime in auto order (connect to an existing service → global dsh → system npx → bundled runtime). If you want DSH Web started by your own system Node, use connect mode:
Install Node.js (a prerequisite for connect mode): download the LTS version from nodejs.org and install it.
Install the desktop (either):
Start DSH Web with the system Node (in a terminal; keep the window open):
npx @deepseek-ai/dsh web --host 127.0.0.1 --port 3080
{
"launchMode": "connect",
"url": "http://127.0.0.1:3080"
}
The config lives at <userData>\config.json (Windows default: C:\Users\<username>\AppData\Roaming\dsh-desktop-shell\config.json; or wherever DSH_DESKTOP_HOME points if set).
Your DSH then runs in real Node (process.execPath is node.exe), so the desktop only supplies the window, project panel, built-in plugins, and system notifications — no Electron-as-Node bundled runtime, and you get upstream updates as soon as they are released.
Note: in connect mode, the DSH Web is started and managed by your terminal — closing the terminal stops the service; the desktop will not launch it for you.
git clone https://github.com/yxccai/dsh-desktop.git
cd dsh-desktop
npm ci
npm run check
npm test
npm start
npm start uses auto mode by default: it prefers your system dsh or npx, so it does not force the bundled runtime either.
npm ci
npm run check
npm test
npm start
More information:
This project is licensed under the MIT License. DeepSeek Harness, Electron, and other dependencies remain under their respective licenses.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: desktop-app。