Back to home

DXF1024

dsh-plugin-desktop-shortcut

No description

Stars
0
Language
JavaScript
Created
Aug 16, 2026
Updated
Aug 16, 2026

Introduction

dsh-plugin-desktop-shortcut

powered_by_dsh

English | 中文

A DeepSeek Harness (dsh) plugin that creates a Windows desktop shortcut to launch dsh web with a single double-click — no terminal needed.

✨ Zero runtime dependencies (Node builtins only). Windows-only. 🐳 Bundled cute DeepSeek whale-girl icon (CC BY-NC-SA 4.0, see assets/NOTICE.md).

Features

  1. On plugin load, writes a small .cmd launcher next to your dsh checkout (<dshDir>/start-dsh-web.cmd) and creates <Desktop>\DSH Web.lnk pointing at it (handles OneDrive desktop redirection).
  2. Double-click the shortcut → a console window opens → pnpm dsh web runs → open http://127.0.0.1:3080. Closing the window stops the service.
  3. Duplicate-run guard: if dsh is already listening on the port, the launcher skips starting a second instance and just opens the browser.
  4. Auto-open browser: opens the web UI a few seconds after the server boots (configurable delay).
  5. In the TUI, registers a /shortcut command:
CommandEffect
/shortcut or /shortcut statusShow current state (including whether the server is running)
/shortcut installCreate / refresh the shortcut and launcher
/shortcut removeDelete both files

Install

Windows only. The plugin is not published to npm yet — install it straight from this GitHub repo.

1. Install the package into your dsh profile

dsh ships a plugin manager that runs pnpm inside the profile directory:

# web profile (this plugin's main target):
pnpm dsh plugin --profile web add git+https://github.com/DXF1024/dsh-plugin-desktop-shortcut.git
# or the TUI profile (for the /shortcut command):
pnpm dsh plugin --profile tui add git+https://github.com/DXF1024/dsh-plugin-desktop-shortcut.git

2. Declare it in the profile's patch layer

Append to ~/.dsh/profiles/web/cordis.patch.yml (it is an empty list by default):

- insert:
    - id: desktop-shortcut
      name: 'dsh-plugin-desktop-shortcut'
      config:
        autoInstall: true
        # dshDir: 'C:\path\to\your\dsh-checkout'   # default: process.cwd()
        # desktopName: 'DSH Web'
        # iconPath: 'C:\path\to\custom.ico'

3. Restart dsh

pnpm dsh web

From now on every start creates/refreshes a "DSH Web" desktop shortcut (whale-girl icon included). TUI users get the /shortcut command instead.

Troubleshooting for other machines:

  • The loader resolves plugin packages from the profile directory (~/.dsh/profiles/web/), so the package must be installed there via dsh plugin --profile web add — installing it into the dsh checkout's own node_modules does NOT work.
  • On machines with a system proxy (e.g. Clash), dsh plugin add may fail with Unsupported proxy syntax because the CLI forwards the raw Windows proxy (127.0.0.1:7897, no scheme) to git. Workaround — run pnpm directly in the profile directory:
    cd ~/.dsh/profiles/web && pnpm add git+https://github.com/DXF1024/dsh-plugin-desktop-shortcut.git
    

Configuration

All fields are optional.

KeyTypeDefaultMeaning
dshDirstringprocess.cwd()dsh checkout directory (launcher is written here)
portnumber3080Web UI port (used for the duplicate guard and browser URL)
desktopNamestringDSH WebShortcut file name (.lnk appended)
autoInstallbooleantrueCreate the shortcut automatically on load
launcherPathstring<dshDir>/start-dsh-web.cmdFull path of the launcher script
desktopPathstring<Desktop>/<desktopName>.lnkFull path of the .lnk file
iconPathstringbundled whale-girl iconCustom .ico path (empty = system default)
openBrowserbooleantrueAuto-open the browser after startup
preventDuplicatebooleantrueDon't start a second instance if already running
browserDelaySecnumber4Seconds to wait before opening the browser

Example:

- insert:
    - id: desktop-shortcut
      name: 'dsh-plugin-desktop-shortcut'
      config:
        dshDir: 'C:\AAADXF\DSH\deepseek-harness-master'
        port: 3080
        desktopName: 'DSH Web'
        iconPath: 'C:\path\to\my-icon.ico'
        openBrowser: true
        preventDuplicate: true
        browserDelaySec: 4

Development

# syntax / export smoke test (16 checks)
node tests/smoke.mjs

Credits

License

Plugin code: MIT | Bundled icon: CC BY-NC-SA 4.0 (see assets/NOTICE.md)