Introduction¶
Using DeepSeek Harness (DSH) for agent development typically involves running dsh web in the terminal and then opening http://127.0.0.1:3080/ in a browser. While this approach works, it comes with several practical friction points: browser tabs can easily be closed while the background service continues running unnoticed; there’s no desktop-level notification when a task completes, requiring you to switch back to the page to check status; and if you want it to run persistently in the background, you have to manage the process and system tray yourself.
This article introduces the community plugin dsh-desktop-windowos (maintained by RAFOLIE, GitHub repository RAFOLIE/dsh-desktop-windowos). It wraps DSH’s webchat into a native Windows window with system tray persistence, provides system notifications upon task completion, and delivers a single, approximately 4.5 MB, no-installation-required executable.
What Is This¶
dsh-desktop-windowos is a Windows desktop shell for DSH, built on the Tauri v2 + React 18 + TypeScript stack. Upon launching the application, it automatically starts the local DSH Web service. The native webchat interface from http://127.0.0.1:3080/ is embedded within the window via an iframe—it does not create a custom chat UI or act as a reverse proxy.
It is categorized as a Client plugin in the SkillHub community directory; as of writing, it has approximately 11 stars and 2 forks on GitHub. The plugin’s npm package name is dsh-desktop-plugin, licensed under MIT. The application itself and the npm plugin are separate version lines (npm is currently at 1.5.10, the application is at v1.6.31; this inconsistency is intentional).
Core Features¶
Out-of-the-Box DSH Discovery¶
After double-clicking the exe, the shell automatically launches DSH through a candidate chain: environment variable DSH_CMD → custom path → system-wide dsh web in PATH → project-local node_modules\.bin\dsh.cmd → confirmed npx. If none are found, the launch page provides one-click options for global installation, npx download, or manual path entry—it does not silently download without consent.
For DSH rc.8+ local runs that automatically open a browser, the shell detects the version and appends --no-open to suppress this behavior. If DSH is already running on port 3080, the application attaches directly to the connection and does not terminate other instances upon exit.
Window, Tray, and Notifications¶
- Custom Title Bar: A borderless window with a centered capsule control that opens the environment management panel when clicked. Dragging, minimizing, maximizing, and closing are custom-drawn, while Windows snap and edge resizing are preserved.
- System Tray Persistence: Clicking the close button (X) only hides the window to the tray; DSH continues running in the background. Double-clicking the tray icon or right-clicking and selecting “Open DSH” brings the window back.
- Task Completion Notification: It listens on
ws://127.0.0.1:3080/api/events.host. When a session transitions from running to idle and the main window is hidden, it triggers a Windows system notification with two buttons: “Open Window” and “Got It”.
Environment Management and Operations¶
The environment management panel provides search functionality and three tabs (Environment, Logs, Updates), displaying running status, DSH core and component versions, location, and storage information. The logging system only records the shell’s own events (dsh.log) with ComfyUI-style line-by-line coloring. “More → Export Diagnostic Information” can assemble a markdown diagnostic package with one click.
The Update Center features two cards: one for managing global @deepseek-ai/dsh package upgrades, and another for managing the shell itself (stable/pre-release channels, auto-update toggle). On startup, the application also aligns the installed dsh-desktop-plugin to the latest npm version (upgrading only, never downgrading).
Fault Handling¶
When DSH exits unexpectedly, it automatically relaunches and refreshes the interface; rapid consecutive crashes trigger a circuit breaker and error report. Missing profile packages are automatically installed with a cooldown bypass; corrupted settings.yaml files are automatically backed up and repaired. The tray provides “Restart dsh web (backend)” and “Restart Frontend & Backend” options; only “Quit (Close DSH)” from the tray fully exits and cleans up the process tree.
Installation and Enabling¶
Prerequisites¶
The target machine must have the following (the exe does not bundle these):
| Item | Requirement |
|---|---|
| Node.js | ^22.19 or ≥ 24 (Required) |
| DSH | Optional: Global npm i -g @deepseek-ai/dsh (Recommended), local pnpm add @deepseek-ai/dsh, or npx on first run |
| WebView2 | Included with Windows 11 |
Method 1: Install via DSH Plugin (Recommended)¶
Execute in the DSH environment:
dsh plugin --profile web add dsh-desktop-plugin
After restarting DSH, the plugin automatically installs the exe to %LOCALAPPDATA%\Programs\dsh-desktop-windowos\ and generates two shortcuts on the desktop: “DeepSeek Harness” (desktop application) and “DeepSeek Harness Web” (opens the frontend in a browser). Subsequent activations will also automatically upgrade the exe to the latest release. In conversation, you can say “Open desktop app” to launch it directly via the desktop_launch tool.
The first run of the exe may trigger Windows SmartScreen (un-signed); simply click “More info → Run anyway”.
Method 2: Download exe Directly¶
- Download
dsh-desktop-windowos-v<version>.exefrom GitHub Releases and double-click to run. - If a global or local DSH is already present on the machine, or if port 3080 is already in use, it will automatically discover or attach.
- If no local DSH exists, the launch page offers options for “One-click global install and start (Recommended)” or “Download and start (npx, alternative)”.
Typical Usage¶
Portable Mode: exe with Local DSH in Same Directory¶
Install DSH in any folder, place the exe in that folder’s root directory, and double-click to run—the application automatically discovers the adjacent node_modules\.bin\dsh.cmd with zero downloads and zero configuration:
pnpm add @deepseek-ai/dsh
# Or place the exe in the root of a directory where npm i @deepseek-ai/dsh has been executed
Daily Operations¶
- Close Window: DSH continues running in the tray; double-click the tray icon to recall it.
- Task Completed: After receiving the system notification, click “Open Window” to focus, or “Got It” to dismiss.
- Troubleshooting Needed: Open the Environment Management Panel → Logs tab to view shell events, or “More → Export Diagnostic Information” to copy for AI analysis.
- Update DSH or Shell: In the Environment Panel, go to the “Update” tab, select a channel, and click “Update Now”.
Building from Source (Windows Developers)¶
Requires the Rust msvc toolchain + VS 2022 Build Tools:
pnpm install
pnpm tauri dev # Development mode
pnpm tauri build # Artifact: src-tauri\target\release\dsh-desktop-windowos.exe
Applicability and Considerations¶
Who It’s For
- Users primarily working with DSH on Windows who want the webchat to persist like a desktop app with system tray and task completion reminders.
- Those who don’t want to manually open browser tabs each time but need a unified environment panel to manage DSH versions, logs, and self-updates.
- Users accepting a single-file portable exe, with data and logs stored in
%LOCALAPPDATA%\dsh-desktop\.
Pre-Use Considerations
- The plugin runs with the current
dshprocess permissions; before installation, you should review the source repository and MIT license to ensure they align with your security policies. - Supports Windows only; the Node.js version must meet DSH requirements (^22.19 or ≥ 24).
- SkillHub is a community plugin directory and has no official affiliation with DeepSeek / High-Flyer; this plugin is also not officially produced.
- The application’s auto-update defaults to tracking the
releases/lateststable version on GitHub; to try pre-release versions, you must manually download or switch channels in the Update Center.
Conclusion¶
dsh-desktop-windowos packages DSH’s webchat into a Tauri desktop shell: automatically discovering or launching local DSH, providing system tray persistence, task completion system notifications, and an environment panel to manage versions and logs, all in a single, approximately 4.5 MB, no-installation-required exe. If you’re already using DSH’s web profile, a single plugin command can integrate this desktop experience.
- Community Directory: skillhub.cn/plugins/RAFOLIE/dsh-desktop-windowos
- Source & Releases: github.com/RAFOLIE/dsh-desktop-windowos