hanwuji1
dsh-web-launcher
π One-click desktop launcher for the DeepSeek Harness Web UI β a whale-icon app that boots dsh web and opens your browser. Zero friction, zero typing.
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
English Β· δΈζ
Stop typing. Stop navigating. Double-click the whale and you're in.
DeepSeek Harness (
dsh) is DeepSeek's open-source agent harness. Its Web UI is one command and one URL away from your work β this plugin removes both.
π The Philosophy
Good tools disappear.
Every time you open the DSH Web UI the old way, you perform the same ritual:
open terminal β type "dsh web" β wait for boot β open browser β type the URL β Enter
Six steps. Ten seconds. Every single time. Ten times a day, that's a hundred minutes a month spent just arriving at your tools β not doing the work. Friction like this doesn't sound like much per click, but it taxes you every time, forever. The tax is invisible, so it never gets questioned.
This plugin exists to delete that ritual:
- π±οΈ One click to be there. Double-click the whale. The server boots, the browser opens, you're in. There is no step two.
- π Idempotent by design. Already running? It just opens the browser. Double-click it ten times β nothing breaks, no port conflicts, no duplicate servers.
- π³οΈ Invisible complexity. The launcher script lives in
%LOCALAPPDATA%, off your desktop. All you see is one clean app icon. - π Works anywhere. The launcher is pure ASCII β it parses correctly under GBK, UTF-8, or any Windows codepage, on any machine.
- π€ Agent-native. A
web_launchermodel tool lets the agent itself install, open, or check the UI β the entry point becomes part of the workflow, not a detour from it.
"The best interface is no interface β the second best is one click."
β¨ Features
| π App-style desktop shortcut | A DeepSeek Harness Web app with a black-whale icon on your desktop |
| β‘ Auto-start & auto-open | Boots dsh web, polls until ready, opens the browser β no waiting, no URL |
| π‘οΈ Self-healing entry | Server already up β straight to the browser; dsh missing β clear hint, never a silent flash |
| π§Ή Clean desktop | Only the app icon is visible; the launcher lives in %LOCALAPPDATA%\dsh-web-launcher |
π€ web_launcher tool | Model-callable install / open / status actions from inside a session |
| βοΈ Fully configurable | Port, app name, launcher name, directories β all overridable via cordis.patch.yml |
| β Tested | Unit-tested (rendering, port probing, ICO packaging) and CI-checked on every push |
π¦ Install
One line. Requires a dsh profile (e.g. the web profile).
# from npm
dsh plugin --profile web add dsh-web-launcher
# or straight from GitHub
dsh plugin --profile web add github:hanwuji1/dsh-web-launcher
That's it. The next time dsh web starts, the plugin places the DeepSeek Harness Web app on your desktop.
No dsh yet? Standalone PowerShell install:
powershell -ExecutionPolicy Bypass -File install.ps1 # default port 3080
powershell -ExecutionPolicy Bypass -File install.ps1 -Port 8080
π Usage
Double-click DeepSeek Harness Web on your desktop:
| Situation | What happens |
|---|---|
| Server not running | Starts dsh web, polls up to ~60 s, auto-opens the browser |
| Server already running | Opens the browser directly |
dsh not installed | Shows npm install -g @deepseek-ai/dsh hint |
Close the console window to stop the server.
web_launcher tool
| Action | Effect |
|---|---|
install | (Re)create the launcher and the whale-icon app shortcut (Windows) |
open | Open the Web UI in the default browser |
status | Report whether the DSH Web server is running |
βοΈ Configuration
Override the plugin row in your profile's cordis.patch.yml (e.g. ~/.dsh/profiles/web/cordis.patch.yml). A patch replaces the whole row config, so restate the keys you keep:
- id: dsh-web-launcher
config:
autoInstall: true # create/refresh the launcher on activation (default true)
createShortcut: true # also create/refresh the app shortcut (default true)
port: 3080 # Web UI port (default 3080)
shortcutName: Start-DSH-Web.cmd # launcher file name (default)
linkName: DeepSeek Harness Web.lnk # app shortcut name (default)
launcherDir: "" # launcher folder; empty = %LOCALAPPDATA%\dsh-web-launcher
desktopDir: "" # desktop folder; empty = auto-detect
π§ How it works
βββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββ
β DeepSeek Harness Web ββββΆβ cmd /c Start-DSH-Web.cmd β
β (desktop .lnk, whale ico)β β (hidden in %LOCALAPPDATA%) β
βββββββββββββββββββββββββββββ βββββββββββββββββ¬ββββββββββββββββ
β
βββββββββββββββββββββββββΌββββββββββββββββββββββββ
βΌ βΌ βΌ
where dsh? port listening? start dsh web
(friendly error) (open browser) (poll β open browser)
cordis.patch.ymlβ declares thedsh.bundlemanifest;dsh plugin addauto-reconciles it into the profile's bundle stack.lib/launcher.jsβ template rendering (pure ASCII), desktop/launcher directory resolution, port probing (fetch+ timeout),.lnkcreation viaWScript.Shell.lib/index.jsβ Cordis plugin (name/inject: ['tools']/Configschema) + thedefineTool-basedweb_launchertool.tools/make-icon.mjsβ regenerates the multi-sizewhale.ico(SVG β PNG β PNG-in-ICO) from the official Harness favicon silhouette.tools/make-banner.mjsβ regenerates this README's hero banner.
β FAQ
Q: Will this run my commands as admin? No. The launcher runs dsh web with your normal user permissions.
Q: Does it interfere with the running server? No. It detects the listening port and skips straight to the browser.
Q: Why is the launcher a .cmd and not an exe? Zero dependencies, no build chain, trivially auditable β 60 lines you can read before running.
Q: Non-Windows? The tool stays registered (status/open work anywhere); the desktop shortcut is Windows-only by design.
β Support
If this plugin saves you even a few seconds a day, star the repo β it helps other people find it, and it tells the maintainer the friction tax was worth deleting.
Found a bug or want a feature? Open an issue β PRs welcome.
ποΈ Project layout
dsh-web-launcher/
βββ lib/ # plugin code (ESM, zero runtime deps)
β βββ index.js # Cordis plugin + web_launcher tool
β βββ launcher.js # template, shortcut, status, browser helpers
β βββ template.cmd.txt # the ASCII launcher template
βββ icons/ # whale.ico + multi-size PNGs (generated)
βββ assets/ # banner.svg, favicon.whale.svg (icon source)
βββ tools/ # icon/banner generators (sharp)
βββ tests/ # node:test unit tests
βββ install.ps1 # standalone install (no dsh required)
π License
MIT β see LICENSE.