Development & Runtime

dsh-desktop

LvsH13/dsh-desktop · ★ 1

LvsH13

DeepSeek Harness 的 Windows 桌面端插件:托盘鲸鱼图标、桌面快捷方式、开机自启直达桌面窗口,一键切换桌面/网页端。 A Windows desktop companion for DeepSeek Harness: system tray (whale) icon, desktop shortcut, login auto-start straight into the desktop window, and one-click desktop/web switching.

An English summary is not available; the Chinese summary is shown.

Repository is no longer available (checked 2026-10-31). This entry is retained for tracking and cannot be installed.

License
MIT
Added
2026-08-16
Maintenance
active
Install kind
github
Manifest status
Declared
Manifest path
package.json#dsh
Manifest checked
2026-08-19
Lifecycle scripts
None found

Static manifest checks report declarations only; they are not compatibility or security review.

README

Source README · body: en · Read Chinese README

Table of contents
  1. 🐋 Dsh-Desktop
  2. ✨ Features
  3. 0.7.7 iteration
  4. 📦 Installation
  5. Requirements
  6. ⚡ Option 1: Install with a single command (recommended)
  7. Option 2: Install from a source checkout
  8. Option 3: Manual install (standard Web plugin flow)
  9. Uninstall
  10. 🚀 Usage
  11. ⚙️ Configuration
  12. 📸 Showcase
  13. 📄 License

中文 · English

🐋 Dsh-Desktop

A desktop companion plugin for DeepSeek Harness — tray whale icon · desktop shortcut · auto-start straight to the desktop window · one-click desktop/web switching

cover

dsh-plugin type version license platform node

A Windows desktop companion for DeepSeek Harness: system tray (whale) icon, desktop shortcut, login auto-start straight into the desktop window, and one-click desktop/web switching.

⚠️ Windows-only: This plugin is for Windows 10 / 11. On macOS / Linux it loads without crashing, but the desktop features — tray, desktop shortcut, auto-start — will not work, because they depend on Windows PowerShell and Task Scheduler.

📌 Before you install: requires Node.js ≥ 20 (same as DeepSeek Harness); Microsoft Edge or Google Chrome is recommended (the app-mode desktop window needs a Chromium engine — with neither, it falls back to a plain default-browser window); no admin rights required; uninstall needs manual cleanup (tray, auto-start, shortcut, %LOCALAPPDATA%\dsh-desktop).

🚀 Key point: the desktop experience = DeepSeek Harness + one plugin — no extra installation. DeepSeek Harness's desktop experience is delivered entirely as a Web plugin. No separate desktop client to download, no reinstall, no admin rights required. If you already have a DeepSeek Harness Web environment, install this plugin and restart to get the full desktop experience.

✨ Features

Feature Description
🐋 System tray companion A whale icon in the notification area with a right-click menu: Open / Restart / Quit the harness
🖥️ Native desktop window Rendered by your local Chromium in app mode (--app): 1352:972 adaptive ratio, centered, freely resizable; a dedicated browser profile keeps extensions, notifications and sign-in prompts out of the window; no startup flicker
🔄 One-click desktop/web switching The Settings button shows Switch to Desktop in web mode and Switch to Web in desktop mode; state is detected without WMI, so the label is always truthful
⚡ Fast boot The logon task uses a wscript.exe hidden launcher (cold-start <1s) to start node <entry> web directly (the exact entry is recorded in harness.json); before the service is ready, the desktop window shows the built-in boot page and auto-redirects once ready; no npx round trip, no port conflicts
🔁 Login auto-start toggle Registers a Task Scheduler logon trigger (the DSHDesktop task, no admin rights; HKCU\...\Run is only the fallback if registration fails) — fires immediately at sign-in, no startup-queue wait
🚀 No console flash Every external PowerShell launch (shortcut / tray / logon task) goes through a wscript.exe hidden runner (Win32 SW_HIDE) — no console window ever flashes during boot, open or switching
🛡️ Reopen · tray self-heal · race guards Reopen immediately after quit; a single-flight launch mutex ignores repeated clicks instead of starting competing Node flows; quit-marker wait, self-healing readiness wait and tray ownership guards against races
🪟 Show/hide terminal Toggle the harness terminal window from Settings
⚙️ Native Settings panel A new Desktop section in the DSH Web UI: status cards, one-click actions, last-open diagnostics

0.7.7 iteration

  • Fixed slow quit-to-reopen behavior by closing known desktop-window PIDs directly and skipping unnecessary WMI scans for a normal single-node shutdown.
  • Fixed repeated shortcut/tray clicks starting competing PowerShell and Node launch flows.
  • Added tray Restart, which rebuilds the Harness service and desktop window while preserving the tray and auto-start configuration.

📦 Installation

Requirements

Item Requirement
OS Windows 10 / 11 (built-in Windows PowerShell 5.1)
Runtime Node.js ≥ 20 (the same Node you use for DeepSeek Harness)
Harness DeepSeek Harness Web profile (dsh web)
Browser Chromium-based recommended (Edge ships with Windows); the desktop window uses your default browser when it is Chromium-based, otherwise Edge → Chrome

Run in any terminal with an installed, working dsh CLI; the plugin manager handles dependency installation:

dsh plugin --profile web add github:LvsH13/dsh-desktop

Then restart the running Web profile:

  • A 🐋 whale tray icon appears in the notification area;
  • A new Desktop section shows up in Settings;
  • Once auto-start is enabled, the logon task opens the desktop window with the boot page within seconds (no console flash).

Option 2: Install from a source checkout

git clone https://github.com/LvsH13/dsh-desktop.git
dsh plugin --profile web add "ABSOLUTE/PATH/TO/cloned/dsh-desktop"

Restart the Web profile afterwards.

Option 3: Manual install (standard Web plugin flow)

  1. Go to the web profile directory (default %USERPROFILE%\.dsh\profiles\web);
  2. Add this package to the dependencies of package.json — one command:
    npm install github:LvsH13/dsh-desktop
    
  3. Add the following entry to the insert list of the profile's cordis.patch.yml:
    - insert:
        - id: dsh-desktop
          name: '@dsh-external/dsh-desktop'
    
  4. Restart the Web profile — the plugin is now active.

Uninstall

dsh plugin --profile web remove "@dsh-external/dsh-desktop"

Optionally: quit the tray, disable auto-start (delete the DSHDesktop scheduled task; if the Run-key fallback was used, also delete the DSHDesktop value under HKCU\...\Run), delete the desktop shortcut and remove %LOCALAPPDATA%\dsh-desktop.

🚀 Usage

Open Settings → Desktop:

Panel What it does
Status Live state of the harness service, tray, desktop window, desktop shortcut, auto-start, terminal
Auto-start Enable/disable login auto-start (Task Scheduler logon trigger, Run-key fallback); when enabled, login starts the service in seconds and opens the desktop window with the boot page directly
Actions Switch to Desktop / Switch to Web (labeled by the current mode), start/quit tray, create desktop shortcut, show/hide terminal

The Last open line reports the previous launch: readiness time (e.g. ready in 1.2s) and window mode (standalone window / default browser), or the failure reason — check this first when something feels slow.

⚙️ Configuration

Item Location / Notes
Companion directory %LOCALAPPDATA%\dsh-desktop\ (auto-migrated from v0.1's $DSH_HOME\desktop)
dsh-tray.ps1 Core tray/launcher script (window layout, single instance, readiness polling, quit signal)
harness.json Exact CLI entry of the running installation: node, DSH_HOME, origin, port
state.json showTerminal / autoStart state
open-state.json Last-open diagnostics (readiness time, window mode)
Boot page boot.html — the black-whale-on-white page shown in the desktop window until the service is ready, then auto-redirects to the UI
Auto-start method Task Scheduler logon trigger (the DSHDesktop task, no admin rights); HKCU\...\Run is only the fallback when registration fails; the active method is recorded in %LOCALAPPDATA%\dsh-desktop\autostart-method.json (task / runkey)
Desktop/web state detection Dual-channel: recorded window PID (primary) + WMI command-line match (fallback) — reliable even without WMI
Runtime dependency schemastery (the only runtime dependency)

⚠️ Keep dsh-tray.ps1 as UTF-8 with BOM — Windows PowerShell 5.1 misreads BOM-less UTF-8.

📸 Showcase

🖥️ Desktop DeepSeek Harness 🐋 Tray icon
Desktop DeepSeek Harness Whale tray icon
📌 Desktop shortcut 🗔 Taskbar
:---: :---:
Desktop shortcut DeepSeek Harness in the taskbar
⚙️ Settings panel · dsh-desktop
:---: :---:
dsh-desktop in the Settings panel

📄 License

MIT · Copyright © 2026 LvsH13


🔖 Part of the dsh-plugin ecosystem: dsh-plugin topic · GitHub repository