DeepSHPlugins
dsh-desktop 專案預覽
GITHUB / COMMUNITY PROJECT

dsh-desktop

客戶端與終端JavaScriptMIT

dsh-desktop:DSH Web GUI 的 Electron 桌面殼——零配置,clone 後 npm install && npm start 即可,未裝 dsh 會自動安裝。

3 Starslongyu065 更新時間 2026-08-16
訪問 GitHub 倉庫
dsh-desktop 專案預覽

專案介紹

中文

dsh-desktop:DSH Web GUI 的 Electron 桌面殼——零配置,clone 後 npm install && npm start 即可,未裝 dsh 會自動安裝。

English

dsh-desktop: an Electron desktop shell for the DSH Web GUI — zero config; clone, npm install && npm start; installs dsh automatically if missing.

專案資訊與收錄訊號

快照 2026-09-11
作者 / 組織
longyu065
倉庫
longyu065/dsh-desktop
GitHub Stars
3
Forks
0
開發語言
JavaScript
許可證
MIT
最近推送
2026-08-16
Manifest
未檢測到 / 未記錄

公開倉庫不自動等於可商用;許可證與當前相容性以原專案文件為準。Manifest 和資料評分不構成安裝安全認證。

資料評分

58/ 100
維護活躍
82
文件與實用資訊
100
生態關注度
17
安裝便捷訊號
80
專案宣告訊號
100

README 含完整安裝與使用說明;關注度尚低(3)。

評分來自已有資料快照的五維模型,僅作瀏覽參考,不是實際使用評測或安全檢測結論。

安裝與使用

所有專案資料與許可均以對應 GitHub 倉庫為準。

git clone https://github.com/longyu065/dsh-desktop.git

複製命令不會自動執行。請先閱讀倉庫文件,確認環境要求與許可證。

專案截圖

倉庫 README

GitHub 原文

已儲存的倉庫文件快照;文件抓取時間未記錄,可能與上方目錄介紹處於不同版本。安裝前請核對當前倉庫說明。

儲存庫檔案保留原文,指令與授權文字不作自動改寫。

dsh-desktop

License: MIT Version [Platform]() [Electron]()

English | 中文

A desktop shell (Electron) for the DeepSeek Harness Web GUI (dsh web, served at 127.0.0.1:3080 by default). Grab-and-go: download the packaged app, launch it — if dsh isn't present, it auto-installs. No system Node.js required (uses Electron's built-in runtime).

Features

  • 🚀 Zero-config startup — auto-locates or auto-installs dsh (@deepseek-ai/dsh); no prerequisites beyond Node.js
  • 🖥️ Native desktop experience — standalone window + macOS menu-bar tray (hide-to-tray on close; show/hide/quit from the tray)
  • 🔄 Smart server management — reuses an existing dsh web instance; spawns a server when none is running; stops the server it started when the app quits
  • 🐋 Official DeepSeek icon — app and tray icons use the official whale mark
  • 📦 One-command packaging — electron-builder produces .app / dmg / zip for macOS and an NSIS installer + zip for Windows

How it works

npm start first runs scripts/ensure-dsh.js:

  1. Locate dsh (resolveDshBin, in order): DSH_BIN env var → dsh on PATH → ~/.npm/_npx/*/node_modules/.bin/dsh → common install locations → project-local vendor/dsh
  2. No dsh? Auto-install (ensureDshBin): runs npm install --prefix vendor/dsh @deepseek-ai/dsh into the project — no global install, no dependence on the user's PATH (first run takes ~1–2 min)
  3. Probe 127.0.0.1:3080 — an existing instance (started by CLI or this app) is reused; otherwise a resident server is spawned (detached, logs to logs/) and the app waits until the port is ready before opening the window.

The Electron process is a pure client: it loads the page and owns the tray. Quitting the app stops the dsh web server it started (tracked via logs/dsh-web.pid, with a command-line sanity check to avoid killing a reused pid). An externally started instance — e.g. one launched from a terminal — is left untouched.

Running electron . directly (npm run start:raw, skipping the preflight) still triggers the same locate/install/spawn fallback from the main process.

Getting started

cd dsh-desktop
npm install        # installs Electron (downloads binary)
npm start          # locate/install dsh → ensure server → open the app
Pin a specific dsh binary: DSH_BIN=/path/to/dsh npm start.
Install output goes to your terminal during vendor/dsh setup; runtime logs live in logs/dsh-web.{stdout,stderr}.log.

Known environment quirks (seen on some machines)

  1. ~/.npm cache owned by root breaks npm install with EPERM. Workaround:

npm install --cache /path/to/writable/npm-cache

  1. Electron's binary download writes to ~/Library/Caches/electron by default; if that's not writable, point it elsewhere with

electron_config_cache (note: this is the variable install.js reads — not ELECTRON_CACHE): electron_config_cache=/path/to/.electron-cache node node_modules/electron/install.js

None of these matter for a normal npm start.

Packaging

npm run dist        # macOS: dmg + zip
npm run dist:win    # Windows: NSIS installer + zip (cross-compile from macOS)
npm run dist:all    # both

Notes:

  • For everyday use just npm start.
  • Released builds do not bundle vendor/dsh (it's large); the target machine auto-installs it on first npm start.

For a fully offline, self-contained build, ship vendor/dsh via extraResources and point DSH_BIN at process.resourcesPath in the main process.

Project layout

dsh-desktop/
├── package.json          # deps, start/dist scripts, build config
├── scripts/
│   ├── ensure-dsh.js     # preflight: locate/install dsh → probe 3080 → spawn resident server
│   └── dsh-server-lib.js # shared logic: dsh locate/install, port probe, readiness wait, spawn
├── electron/
│   ├── main.js           # main process: fallback locate/install/spawn, window, tray
│   └── preload.js        # minimal preload bridge (read-only version info)
├── vendor/dsh/           # auto-installed dsh (created on first start; safe to delete)
├── logs/                 # dsh web logs & pid (runtime)
├── build/                # app icons (icon.icns, icon.ico, icon.png)
└── release/              # packaging output (electron-builder)

License

MIT © 2026 tiankunrui

使用前核對

安裝步驟、相容版本與授權範圍以原專案當前文件為準。Stars 和評分是快照中的導航訊號。

安裝與排錯 · 專案問題反饋

同類專案