dsh-desktop
yxccai/dsh-desktop
Unofficial Windows and macOS desktop app for DeepSeek Harness, with bundled runtime and automatic reuse of existing DSH environments.
9
stars
3
forks
MIT
License
2026-08-15
Created
2026-08-16
Last push
README
DSH Desktop
English | 简体中文
An unofficial open-source desktop app for DeepSeek Harness, designed to provide a simpler and more convenient desktop experience.
Highlights
A desktop shell around the official DSH Web — inherited features, secure, and easy to keep current
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.
Foundation stays lean — only two practical desktop enhancements
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.
Extensible and creative — a complete plugin ecosystem on a lean base
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
Download from GitHub Releases:
macOS (test build)
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.
Screenshots
Conversation-aware project panel

Conversation snapshots and per-file rollback

Managed Plugin Center

Community plugin market
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:


How it works
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.
Project panel
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.
Web plugin market (optional)
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.
Plugin compatibility
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.
Platform support
- 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.
Development
npm ci
npm run check
npm test
npm start
More information:
License
This project is licensed under the MIT License. DeepSeek Harness, Electron, and other dependencies remain under their respective licenses.
More in Desktop & Apps
open-design
by nexu-io
🎨 Best DeepSeek Harness Design Plugin. The open-source Claude Design alternative. 🖥️ Local-first desktop app. 🖼️ Your coding agent becomes the design engine: prototypes, landing pages, dashboards, slides, images & video — real files, HTML/PDF/PPTX/MP4 export. 🤖 Claude Code / Codex / Cursor / DeepSeek Harness / OpenCode & 20+ CLIs via BYOK.
deepseek-harness-desktop
by anywhere-labs
为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案
openbiliclaw
by whiteguo233
本地私有、开源的自进化跨平台 AI 内容发现 Agent:先理解你,再主动从 B站、小红书、抖音、YouTube、X、知乎、Reddit、微博等平台与开放 Web 寻找内容。(支持 deepseek harness 插件) | Local-first open-source cross-platform AI content discovery agent: understands you, then proactively finds content across Bilibili, Xiaohongshu, Douyin, YouTube, X, Zhihu, Reddit, Weibo and the open web.(support deepseek harness plugin)
deeptide
by paean-ai
Built by DeepSeek, for DeepSeek — a Swift-native macOS coding agent
