Preface¶
For developers using the DeepSeek Harness (DSH) Web profile on Windows, the daily entry point looks roughly like this: open the terminal, execute dsh web, wait for the service to start, and then switch to the browser. There is no tray icon, no desktop shortcut, and a restart means starting from scratch. To create a “desktop client” in the traditional sense, one would need to maintain a separate download, installation, and update chain.
dsh-desktop takes a different approach: it turns the desktop experience into a web plugin. DSH’s philosophy is “everything is a plugin,” and the desktop is no exception. It is provided as a web plugin, requiring no separate desktop client installation, and requires no admin privileges throughout the process. After installing the plugin and restarting the Web profile, the tray icon, desktop window, and boot startup are all in place.
What is this¶
dsh-desktop is the desktop companion plugin for DeepSeek Harness, maintained by LvsH13. The NPM package name is @dsh-external/dsh-desktop, the current version is 0.7.7, the license is MIT, and the only runtime dependency is schemastery. One-sentence positioning: a tray whale icon, desktop shortcuts, boot startup directly to the desktop window, and one-click switching between desktop/web modes.
Core Features¶
Tray and Desktop Window¶
The notification area has a resident whale icon; the right-click menu allows one-click open, restart, and exit. The desktop window uses the local Chromium app mode (--app) for rendering, with a 1352:972 aspect ratio, screen centering, and free resizing, and uses a separate browser profile. It is recommended to install Microsoft Edge or Google Chrome; if neither is present, it falls back to the default browser’s normal window.
Second-level Launch and Autostart¶
Boot login tasks use wscript.exe hidden launcher (cold start <1s) to launch node <entry> web; before the service is ready, the desktop window displays the built-in startup page boot.html and automatically redirects upon readiness. Autostart is implemented via the Task Scheduler login trigger (DSHDesktop task, no admin privileges required); HKCU\...\Run is only a fallback for registration failure. All external PowerShell launches go through the wscript.exe hidden runner (Win32 SW_HIDE), ensuring no terminal window flashes during boot, opening, or switching.
Desktop/Web One-click Switch¶
The button on the settings page displays “Switch Desktop / Switch Web” based on the current state. Status is automatically detected: primarily recorded via the window PID, with WMI command-line matching as a fallback.
Stability and Settings Panel¶
Exit and reopen, tray self-healing, race condition protection: single launch request mutex, tray.pid single ownership, quit flag waiting. The DSH Web UI adds a “Desktop” settings area, providing status cards, one-click operations, and last open diagnostics; it also supports one-click show/hide of the Harness terminal window, as well as creating desktop shortcuts.
Environment Requirements¶
- Windows 10 / 11. On macOS/Linux, the plugin can be loaded and won’t crash, but desktop features like the tray, desktop shortcuts, and boot startup will not work (they rely on Windows PowerShell and Task Scheduler).
- Node.js ≥ 20 (same as DeepSeek Harness).
- DeepSeek Harness Web profile (
dsh web). - No admin privileges required throughout.
Installation and Enablement¶
Method 1: Install with one command (Recommended)¶
First, execute the following in any terminal:
dsh plugin --profile web add github:LvsH13/dsh-desktop
Then restart the running Web profile. After the steps above, a whale tray icon will appear in the notification area, and a “Desktop” block will appear on the settings page.
Method 2: Install from source code¶
git clone https://github.com/LvsH13/dsh-desktop.git
dsh plugin --profile web add "<absolute path to cloned dsh-desktop directory>"
This takes effect after restarting the Web profile.
Method 3: Manually add¶
Execute the following in the Web profile directory:
npm install github:LvsH13/dsh-desktop
Then add the following to the insert list in the profile’s cordis.patch.yml:
- insert:
- id: dsh-desktop
name: '@dsh-external/dsh-desktop'
Restart the Web profile, and the plugin takes effect.
Uninstall¶
dsh plugin --profile web remove "@dsh-external/dsh-desktop"
Subsequently, optional cleanup: quit the tray, close autostart (delete the DSHDesktop Task Scheduler task; if the Run key fallback was used, also delete the DSHDesktop key value in HKCU\...\Run), and delete desktop shortcuts and the %LOCALAPPDATA%\dsh-desktop directory.
Typical Usage¶
Open “Settings -> Desktop” to view the real-time status of Harness service, tray, desktop window, shortcuts, autostart, and terminal; toggle autostart; switch desktop/web; start/exit tray; create desktop shortcuts; show/hide terminal.
“Restart” in the tray right-click menu will stop and restart Harness in order, preserving the tray icon and autostart settings; repeated clicks during restart will not create extra Node instances.
The “Last Open” line will report the readiness time of the last launch (e.g., Ready time 1.2s) and window mode (Independent Window / Default Browser), or the reason for failure—check here first if you encounter a hang.
Scenarios and Notes¶
Suitable for developers who use the DSH Web profile on Windows daily and want to use it immediately upon booting, minimizing terminal interaction. Also suitable for scenarios requiring switching between desktop and web modes.
Pre-use notes:
- Only supports Windows 10 / 11; desktop features are unavailable on macOS/Linux (see Environment Requirements).
- The desktop window in app mode requires a Chromium kernel; it is recommended to install Microsoft Edge or Google Chrome; if neither exists, it falls back to a default browser normal window.
- Keep
dsh-tray.ps1in UTF-8 with BOM encoding, otherwise Windows PowerShell 5.1 will read garbled text. - Manual cleanup of the tray, autostart, shortcuts, and
%LOCALAPPDATA%\dsh-desktopdirectory is required during uninstallation. - The plugin runs with the permissions of the current dsh process. It is recommended to browse the repository source code before installing and confirm the MIT license meets your usage requirements.
Summary¶
dsh-desktop implements DSH’s “everything is a plugin” philosophy onto the desktop experience: one web plugin, replacing the tray, desktop window, and boot startup, without introducing the maintenance cost of a separate client. The repository and community directory addresses are as follows:
- GitHub: https://github.com/LvsH13/dsh-desktop
- Community Plugin Directory: https://www.skillhub.cn/plugins/LvsH13/dsh-desktop