🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

桌面启动器 cyc120/dsh-desktop

DeepSeek Harness
cyc12079 天前有提交已提供中文文档扫描:含敏感能力

双击图标即可启动 dsh Web 界面,无需敲命令

25.5/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/12 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add cyc120/dsh-desktop
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · ui
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 79 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 19 处,展示前 15 条)
  • 读取本地文件
    src/main.cjs:69
    try { if (fs.existsSync(path.join(dir, 'apps', 'cli'))) return dir } catch { }
  • 读取本地文件
    src/main.cjs:76
    if (!fs.existsSync(p)) {
  • 写入本地文件
    src/main.cjs:77
    fs.mkdirSync(path.dirname(p), { recursive: true })
  • 写入本地文件
    src/main.cjs:78
    fs.writeFileSync(p, JSON.stringify({
  • 读取本地文件
    src/main.cjs:102
    try { saved = JSON.parse(fs.readFileSync(settingsPath(), 'utf8')) } catch { }
  • 读取本地文件
    src/main.cjs:125
    try { if (fs.existsSync(bin)) return { command: bin, env: {} } } catch { }
  • 读取本地文件
    src/main.cjs:136
    if (mode === 'auto') mode = fs.existsSync(built) ? 'built' : 'dev'
  • 读取本地文件
    src/main.cjs:145
    if (!fs.existsSync(built)) throw new Error('未找到构建产物 ' + built + ';先运行 pnpm build 或改用 dev 模式')
  • 写入本地文件
    src/main.cjs:194
    fs.mkdirSync(app.getPath('userData'), { recursive: true })
  • 写入本地文件
    src/main.cjs:195
    logStream = fs.createWriteStream(logPath(), { flags: 'a' })
  • 执行外部命令来自配置/变量
    src/main.cjs:199
    const child = spawn(command, args, {
  • 写入本地文件
    src/main.cjs:390
    fs.mkdirSync(app.getPath('userData'), { recursive: true })
  • 写入本地文件
    src/main.cjs:391
    fs.writeFileSync(boundsFile(), JSON.stringify(win.getBounds()))
  • 发起网络请求
    shell.js:2
    var I5=Object.defineProperty;var $5=(n,r,i)=>r in n?I5(n,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[r]=i;var P=(n,r,i)=>$5(n,typeof r!="
  • 写入剪贴板
    shell.js:72
    var M0;function I6(){if(M0)return ml;M0=1;var n=E1(),r=T6();function i(C,v){return C===v&&(C!==0||1/C===1/v)||C!==C&&v!==v}var s=typeof Object.is=="fu
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 双击图标启动界面
  • 免命令行操作

README

由 DeepSeek 最新模型翻译生成
DSH Desktop — DeepSeek Harness 桌面客户端 双击蓝鲸图标,一键启动 dsh Web UI。 基于 Electron(macOS / Windows),图标为 DeepSeek 官方蓝鲸(#4D6BFE)。 下载安装(安装即可用) 从 GitHub Releases 下载对应平台的安装包: | 平台 | 安装包 | 安装方式 | | macOS (Apple Silicon / Intel) | DSH-<版本>.dmg | 打开 dmg,把 DSH.app 拖入「应用程序」 | | Windows 10/11 x64 | DSH-Setup-<版本>.exe | 双击安装,自动创建桌面/开始菜单快捷方式 | macOS:安装包为 ad-hoc 签名(无 Apple 开发者证书)。若首次打开被 Gatekeeper 拦截,请右键 DSH.app →「打开」→「打开」,仅需一次。 Windows:未做代码签名,SmartScreen 可能提示「更多信息 → 仍要运行」,仅需一次。
展开完整文档(README 剩余 1 节)
DSH Desktop — DeepSeek Harness 桌面客户端

双击蓝鲸图标,一键启动 dsh Web UI。
基于 Electron(macOS / Windows),图标为 DeepSeek 官方蓝鲸(#4D6BFE)。

下载安装(安装即可用)

从 GitHub Releases 下载对应平台的安装包:

| 平台 | 安装包 | 安装方式 |
| macOS (Apple Silicon / Intel) | DSH-<版本>.dmg | 打开 dmg,把 DSH.app 拖入「应用程序」 |
| Windows 10/11 x64 | DSH-Setup-<版本>.exe | 双击安装,自动创建桌面/开始菜单快捷方式 |

macOS:安装包为 ad-hoc 签名(无 Apple 开发者证书)。若首次打开被 Gatekeeper 拦截,请右键 DSH.app →「打开」→「打开」,仅需一次。
Windows:未做代码签名,SmartScreen 可能提示「更多信息 → 仍要运行」,仅需一次。

首次启动自动生成配置文件(macOS:~/Library/Application Support/DeepSeek Harness/settings.json; Windows:%APPDATA%\DeepSeek Harness\settings.json),会自动探测本机 ~/deepseek-harness 仓库(需含 apps/cli 构建产物或源码)。没有仓库时,窗口内会给出「打开设置」引导,配置好 repoDir 即可。

工作方式

1. 探测端口:先检查 host:port(默认 127.0.0.1:3080)是否已有 dsh 服务在运行。
2. 挂接(attach):已有服务 → 直接打开窗口加载界面,绝不重复启动,退出时也不动原服务。
3. 拉起(spawn):没有服务 → 用 node 执行 node <repo>/apps/cli/lib/bin.js web --host … --port …(构建产物)或 tsx dev 模式,轮询端口就绪后加载界面;退出应用时自动停掉自己拉起的子进程。
4. 异常兜底:启动失败/服务中途退出 → 窗口内错误页 + 日志尾部 + 「重试」。

从源码运行 / 打包

cd ~/dsh # 本项目
npm install # 安装 electron + electron-builder
npm start # 开发模式直接运行
npm run smoke # 无窗口自动化冒烟测试(挂接 3080)
DSH_DESKTOP_PORT=3199 npm run smoke # 自启动路径冒烟测试

打包安装包:

npm run package # macOS:dist/DSH.app + dist/DSH-0.1.0.dmg
npm run package:win # Windows:dist/win/DSH-Setup-0.1.0.exe(在 macOS 上交叉构建)
npm run package:all # 两个平台一起打

配置

首次启动自动生成 settings.json(菜单「DeepSeek Harness → 设置…」可直接打开):

| 字段 | 默认 | 说明 |
| repoDir | 自动探测 | deepseek-harness 仓库路径(含 apps/cli) |
| host / port | 127.0.0.1 / 3080 | dsh web 监听地址 |
| mode | auto | auto=优先构建产物;built;dev(tsx 源码模式);custom |
| command | null | mode=custom 时的完整命令数组,如 ["pnpm","dsh","web"] |
| extraArgs | [] | 追加给 dsh web 的额外参数,如 ["--patch","~/x.yml"] |
| nodePath | 自动探测 | 运行 dsh 的 node(macOS 候选 /usr/local/bin/node 等,兜底 Electron 内置 Node) |
| bootTimeoutMs | 60000 | 等待端口就绪的超时 |
| quitStopsServer | true | 退出时停掉自己拉起的服务(挂接的服务永不干预) |

环境变量覆盖(调试用):DSH_DESKTOP_PORT、DSH_DESKTOP_HOST、DSH_DESKTOP_MODE、DSH_DESKTOP_REPO、DSH_DESKTOP_BOOT_TIMEOUT。

目录结构

dsh/
├── src/
│ ├── main.cjs # 主进程:单实例、spawn/挂接、窗口与生命周期、日志 │ ├── preload.cjs # 最小沙箱桥(retry/status/打开设置与日志) │ ├── splash.html # 启动页(鲸鱼 + 状态) │ └── error.html # 错误页(消息 + 日志尾部 + 重试) ├── assets/ # 官方蓝鲸图标(svg/png/icns) ├── scripts/ │ ├── make-icons.sh # SVG → 全套 PNG + .icns(Electron 渲染/sips/iconutil) │ ├── render-icon.cjs # Chromium 光栅化 SVG(透明底、鲸鱼铺满画布) │ └── package-macos.mjs # Electron.app → DSH.app + ad-hoc 签名 + DMG ├── electron-builder.yml # Windows NSIS 安装包配置 └── dist/ # 打包产物(DSH.app、DMG、Windows 安装包)

安全说明

- 窗口只允许加载 dsh 源站(http://host:port),其他 http(s) 链接一律交给系统浏览器。
- 渲染进程 sandbox: true + contextIsolation: true,preload 只暴露 5 个动作。
- 应用只管理自己拉起的 dsh 子进程;已有服务完全不受影响。
- 启动日志:macOS ~/Library/Application Support/DeepSeek Harness/dsh-server.log; Windows %APPDATA%\DeepSeek Harness\dsh-server.log。

开发备注

- 单实例锁:重复双击会把已有窗口带到前台,不会开第二个。
- --smoke 模式:窗口不显示,加载成功后打印 SMOKE-OK 并以 0 退出(自动清理子进程)。
- 窗口尺寸会记忆在 window-state.json。
- 菜单栏提供:设置、打开日志、在浏览器中打开、重载/开发者工具(Cmd+R / Alt+Cmd+I)。
预览分享卡片长什么样 ↓cyc120/dsh-desktop
分享 · DeepSeek Harness Hub
cyc120/dsh-desktop

双击图标即可启动 dsh Web 界面,无需敲命令

这是你的仓库?认领条目

回到顶部