DSH-X

Website · Download · Star · 中文

A lightweight launcher for DeepSeek Harness. Pick a version, start DSH web. > [!IMPORTANT] > **DSH-X starts DeepSeek Harness's own web page.** > It only handles version installation, launching and plugin management and never modifies or rewrites DSH's web UI. DSH-X is a community project, not an official DeepSeek product. ## Features - **Pick a version and go**: start / stop / restart / update / uninstall - **Multi-platform**: native packages for both Windows and macOS (with separate Apple Silicon and Intel builds for macOS); self-update, launch at login and the folder picker use each system's own mechanisms - **Plugins page**: list installed plugins and toggle each with one click, check for and install updates (one or all), and switch profiles - **Modpacks**: install a batch of plugins and their config in one go (community market and import/export included) — see the Modpacks section below - **Compatibility mode**: on a failed start, disable the plugins named in the error (one click to restore); after boot it checks the client plugin bundles that the page references and reports the verdict, telling a broken install apart from a stale tab - **Dark appearance**: follow the system or pick a theme, plus floating-panel transparency and mascot switches - **Faster startup**: equivalent fast implementations at the bundle composition point (saves about 1–2 s), skipped automatically once dsh changes underneath - **Plugins stay where dsh puts them**: data lives in `~/.dsh`, so switching versions needs no plugin reinstall - **Keeps one older version**: only the newest and the most recently installed are kept (enough to roll back); older ones are pruned after install (this can be turned off in Settings) - **Resident in the background**: closing the page does not quit (Windows tray / macOS menu bar icon); the UI uses your system browser - **Bundled Node / npm / pnpm**: a portable runtime ships inside the package, packages come from the npmmirror registry, and plugin installs need nothing from the host system - **Network proxy**: follow the system proxy (default), enter an address, or turn it off; unreachable proxies fall back to a direct connection. The version list, GitHub, the market and plugin installs all go through it - **Run several versions at once**: one instance per version, each on the port it picked (data in `.dsh` is shared anyway); open and stop them one by one on the control page. To keep one address across restarts, pin a port to a version × profile (applies on the next start) - **Optional marketplace**: `dshmarket` can be installed on first launch Feedback: **QQ group [993579665](https://qm.qq.com/q/7AD2g70HqS)** ## Modpacks Install a batch of plugins and their config in one go — no installing one by one and hand-editing files. Every modpack is a card on the Plugins page: **one card is one profile** (which is exactly what installing a pack produces), profiles you assembled by hand show up too, and a card that came from a pack says where it came from. Click one to see the plugins in that profile, each still toggleable on its own. The format is the ecosystem's [DSH-PackForge](https://github.com/DSH-PackForge/DSH-PackForge) `.dspack` (manifest v5, older versions accepted), so packs are interchangeable with other launchers. - **Where from**: a local `.dspack` file, a direct link, or a GitHub `owner/repo` (it takes the `.dspack` from the latest release); or pick one from the built-in community market right on the page. - **Where to**: a profile of its own by default, so your current setup is untouched — or point it at an existing profile such as `web`. Switch to it and restart from the same page. - **You see it first**: layers, dependencies, files to write, what gets overridden, and what in the pack will not be installed (credentials, `.npmrc` and machine-wide settings never land on disk). Nothing happens before you confirm. - **You can get back**: files it overwrites are backed up first, a failed install rolls back, removing a pack restores your files, and a profile the pack created can be deleted along with it. - **Share your own**: export the current profile as a `.dspack` (pinned dependencies + patch layer + config files, never `node_modules` or credentials), and whoever installs it gets the same plugin setup. The repo ships one: [**`packs/dsh-x-recommended`**](packs/dsh-x-recommended/README.md) — DSH-X's own starter set, which currently installs the ecosystem's config-manager plugin (`dsh-config-manager`). `node scripts/make-pack.mjs` builds it into `release/packs/`, then install it from the page as a local file. ## Screenshots

DSH-X control page

DSH-X plugins page

DSH-X modpack cards on the plugins page

DSH-X modpack detail: the plugins it brought

DSH-X settings page

## Antivirus false positives The launcher is not code-signed and behaves a bit like a downloader to heuristics (it spawns `cmd` / `powershell`, can write an autostart entry, ships its own Node runtime, downloads an installer to self-update), so Windows Defender or another antivirus may occasionally block it. If it does: add the install directory (default `%LOCALAPPDATA%\Programs\DSH`) to the exclusions, and report the false positive to [Microsoft](https://www.microsoft.com/en-us/wdsi/filesubmission) (choose "software developer", upload `DSH-Setup.exe`) — usually reverted in a day or two; other vendors (360, Huorong, …) have their own forms. A SmartScreen "unknown publisher" prompt after downloading is expected: click "Run anyway". ## Usage Windows: install [DSH-Setup.exe](https://github.com/yyh-001/DSH-X/releases/latest), then open **DSH-X** from the desktop. macOS: open `DSH-X-mac-arm64.dmg` (Apple Silicon) or `DSH-X-mac-x64.dmg` (Intel) and drag **DSH-X** into Applications. The app is not notarized, so the first launch needs right-click → **Open**; self-update also needs the app to sit in a writable folder. Settings and logs live in `~/Library/Application Support/DSH`. The manager page and dsh's own web page open in your default browser; the manager defaults to `http://127.0.0.1:3780/` (the port can be changed on the settings page). To reach dsh from a phone or another computer: settings → Advanced → **Web binding** → LAN, applied the next time dsh starts. Verifying a download (optional): the releases page lists a sha256 next to every file — compare it locally with `certutil -hashfile DSH-Setup.exe SHA256` (Windows) or `shasum -a 256 DSH-X-mac-arm64.dmg` (macOS). ## Development Needs Node.js 22.18+ locally. `npm install`, then `npm start`; web page only: `npm run server`. ## Packaging ```sh npm run dist ``` On Windows (Rust and Inno Setup 6) this produces `release/DSH/` and `release/DSH-Setup.exe`; on macOS (Rust and the Xcode command line tools) it produces `release/DSH-X.app` and `release/DSH-X-mac-.dmg` (Intel: `DSH_MAC_ARCH=x64 npm run dist`). The build also writes an SBOM and a release manifest for self-checking (not uploaded to the release). To publish, run the two gates and upload the installer together with the dmgs: ```sh node scripts/release-manifest.mjs check-tag v0.1.14 # tag must match the version in package.json node scripts/release-manifest.mjs verify # every artifact hash; also checks the signature when a key is present gh release create v0.1.14 release/DSH-Setup.exe release/mac/DSH-X-mac-*.dmg --latest ``` The private key lives in `release/release-key.pem` (git-ignored, **back it up**). The header comments in `scripts/release-manifest.mjs` document `keygen` and verifying a directory of files.