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

桌面启动器 zhuilong2017/dsh-desktop

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

双击图标即可启动 DSH 网页服务并打开窗口

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

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

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

状态速览

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

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

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 12 处,展示前 12 条)
  • 写入本地文件
    main.js:22
    fs.appendFileSync(path.join(dir, "dsh-desktop.log"), `[${new Date().toISOString()}] ${line}\n`);
  • 读取本地文件
    main.js:58
    const f = JSON.parse(fs.readFileSync(zoomFile(), "utf8")).factor;
  • 写入本地文件
    main.js:66
    fs.writeFileSync(zoomFile(), JSON.stringify({ factor: Math.round(factor * 100) / 100 }));
  • 读取本地文件
    server.js:37
    if (process.env.DSH_DESKTOP_NODE && fs.existsSync(process.env.DSH_DESKTOP_NODE)) {
  • 读取本地文件
    server.js:44
    .find((p) => fs.existsSync(p));
  • 读取本地文件
    server.js:48
    if (fs.existsSync(p)) return p;
  • 读取本地文件
    server.js:52
    if (fs.existsSync(p)) return p;
  • 读取本地文件
    server.js:79
    if (fs.existsSync(c)) return c;
  • 发起网络请求
    server.js:93
    const req = http.get(url, (res) => {
  • 发起网络请求
    server.js:116
    const req = http.get(url, (res) => {
  • 执行外部命令固定命令
    server.js:148
    execFile("taskkill", ["/pid", String(pid), "/T", "/F"], { windowsHide: true }, () => {});
  • 执行外部命令来自配置/变量
    server.js:187
    const child = spawn(runtime.execPath, ["--expose-internals", dshBin, "web", "--port", String(port)], {
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis-plugin-group@deepseek-ai/dsh@deepseek-ai/dsh-anonymous-user-id@deepseek-ai/dsh-atomic-write@deepseek-ai/dsh-bash-local@deepseek-ai/dsh-code-runtime@deepseek-ai/dsh-compaction@deepseek-ai/dsh-fs@deepseek-ai/dsh-invariants@deepseek-ai/dsh-output-retention@deepseek-ai/dsh-sandbox@deepseek-ai/dsh-scope
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 双击启动网页服务
  • 自动打开窗口

README

由 DeepSeek 最新模型翻译生成
DSH Desktop(DeepSeek Harness 桌面版) 把 DSH 的 Web 界面封装成 Windows 桌面应用:双击图标即用,自动在后台拉起 dsh web 服务,用 Electron 窗口内嵌界面,不再需要打开终端和浏览器。 使用方法 打包产物(给日常使用) - dist/DSH-Desktop-<版本>-portable.exe —— 免安装,双击直接运行(注意:首次启动要先把约 500MB 的应用解压到临时目录,通常需要 2~4 分钟,之后每次启动都要重新解压,速度较慢;适合偶尔用、不想安装的场景) - dist/DSH-Desktop-<版本>-setup.exe —— 安装包(推荐日常使用):安装一次约 1~2 分钟,之后双击桌面图标秒开,无解压等待 启动后: - 自动选择一个空闲端口(3080 / 3180 / 3280 …
展开完整文档(README 剩余 1 节)
DSH Desktop(DeepSeek Harness 桌面版)

把 DSH 的 Web 界面封装成 Windows 桌面应用:双击图标即用,自动在后台拉起 dsh web 服务,用 Electron 窗口内嵌界面,不再需要打开终端和浏览器。

使用方法

打包产物(给日常使用)

- dist/DSH-Desktop-<版本>-portable.exe —— 免安装,双击直接运行(注意:首次启动要先把约 500MB 的应用解压到临时目录,通常需要 2~4 分钟,之后每次启动都要重新解压,速度较慢;适合偶尔用、不想安装的场景)
- dist/DSH-Desktop-<版本>-setup.exe —— 安装包(推荐日常使用):安装一次约 1~2 分钟,之后双击桌面图标秒开,无解压等待

启动后:
- 自动选择一个空闲端口(3080 / 3180 / 3280 …)启动 dsh web 服务,并弹出应用窗口
- 如果检测到本机已有 dsh web 在运行(如命令行 dsh web 或 harness 起的 3080),会直接复用而不是再起一个新实例——这是为了防止两个 dsh 实例并发写同一会话日志导致损坏(见"注意事项")
- 点窗口右上角 × 是最小化到托盘(后台 agent 任务不中断),托盘菜单选 退出 才真正退出
- 重复双击只会聚焦已有窗口,不会重复启动服务
- 调整字体/界面大小:按住 Ctrl + 鼠标滚轮 缩放(比例会被记住,下次打开不变); Ctrl + 0 恢复 100%;网页端在浏览器里同样操作
- 界面里的外部链接会自动用系统浏览器打开

数据与配置

与命令行版完全一致,都存放在 %USERPROFILE%\.dsh(即 C:\Users\<你>\.dsh):会话记录、凭据、settings.yaml、自定义 profile 等全部共用,桌面版与命令行版可以无缝交替使用。

开发 / 重新打包

cd DSH-Desktop
npm install # 首次安装依赖(已配置国内镜像)
npm start # 开发模式运行
npm run test:server # 纯 node 冒烟测试(不弹窗口,只验证 dsh 服务拉起)
npm run dist # 打包 portable + NSIS 安装包,输出到 dist/

工作原理

1. server.js 找到系统 Node.js 与 @deepseek-ai/dsh 的入口,以子进程方式运行 node .../dsh/lib/bin.js web --port <端口>(会清理当前会话注入的临时环境变量,避免串会话)。
2. 轮询 HTTP 直到服务就绪,解析 dsh 打印的 dsh web: http://127.0.0.1:<端口>。
3. main.js(Electron 主进程)用 BrowserWindow 加载该地址,配置了单实例锁、托盘常驻、外部链接拦截等。
4. 退出应用时用 taskkill /T /F 按进程树清理 dsh 及其子进程。

注意事项

- 需要系统安装 Node.js(用于运行 dsh CLI;找不到时可用环境变量 DSH_DESKTOP_NODE 指定 node.exe 的绝对路径)。
- 首次启动 dsh 会初始化/更新 ~/.dsh 下的 profile,可能稍慢,属正常现象。
- 打包时已禁用原生模块重编译(npmRebuild: false),dsh 的原生模块(node-pty / sharp / koffi 等)均使用官方预编译 N-API 版本,无需 VS 构建工具。
- 依赖裁剪陷阱:electron-builder 会按依赖树裁剪 node_modules,而 dsh 生态大量使用 peerDependencies(npm 会自动安装、但会被裁剪掉)。本项目的 dependencies 里显式列出了这些运行时包,并用 npm run verify:package(基于 package-lock 校验)在打包后兜底检查。
- 启动遇到问题时,看诊断日志:%APPDATA%\DSH Desktop\dsh-desktop.log。
- 千万不要同时运行两个 dsh web 实例(本应用 + 命令行 dsh web / harness GUI):它们共享 ~/.dsh 下的会话文件,如果都接入了同一个会话,两个进程会并发往同一份 session.jsonl.zstd 追加事件,造成 seq 冲突,日志损坏(报错形如 corrupt session log: seq gap in committed region ...),历史将无法加载。
本应用已内置"检测到已有服务就复用"的保护;命令行侧需要你自己留意。
- 如果会话日志已经损坏,可用修复脚本恢复(会删除冲突的重复事件并备份原文件): node scripts/repair-session.js(脚本内的 TARGET 路径改成损坏会话的文件路径)。

分发给别人使用

给对方什么

- dist/DSH-Desktop-<版本>-setup.exe(安装包,约 105MB,推荐)
- 传递方式:微信/QQ 文件、网盘、U 盘、实验室共享盘均可

对方需要准备(约 5 分钟)

1. Windows 10/11 64 位电脑
2. 安装 Node.js LTS(https://nodejs.org ,一路默认即可;已有则跳过)。
应用内置了 Electron 自带的 Node 作为后备(无系统 Node 时会自动启用,已实测可跑),但建议还是装系统 Node.js 更稳妥。
3. 一个 DeepSeek API Key(platform.deepseek.com 注册申请,新用户通常有免费额度)

对方操作步骤

1. 双击安装 DSH Desktop(无需管理员权限)
2. 打开应用,按首次引导弹窗(或"设置 → 模型")粘贴自己的 API Key
3. 完成,直接开聊

注意事项

- 安装包未签名:Windows SmartScreen 会提示"Windows 已保护你的电脑",点"更多信息 → 仍要运行"即可。内部使用可接受;要彻底消除提示需购买代码签名证书(每年约几百元人民币),非必须。
- 每个使用者的 API Key 只存在他自己电脑的 ~/.dsh/.credentials.yaml 里,安装包内不含任何人的密钥,放心分发。
- 提醒对方:不要同时开两个 dsh web 实例(应用已内置复用保护,命令行侧需自己注意)。

Mac 版

代码已做好跨平台兼容(Node 查找、进程清理都分平台处理),package.json 已配置好 macOS 目标(dmg + zip,x64 与 Apple Silicon arm64)。但 .dmg 必须在 macOS 上构建 (electron-builder 的 mac 工具链只能在 macOS 运行),Windows 上无法直接产出 mac 安装包。

两种构建方式,任选其一:

方式 A:GitHub Actions 自动构建(推荐,免费)

1. 把 DSH-Desktop 项目推到 GitHub 仓库
2. 仓库页面 → Actions → Build → Run workflow
3. 几分钟后自动产出 Windows 与 macOS 的全部安装包,在 Artifacts 里下载

方式 B:找一台 Mac 本地构建

在 Mac 上装 Node.js LTS 和 git,把项目拷过去后运行:
cd DSH-Desktop
npm install
npm run dist:mac # 产物在 dist/ 下(.dmg / .zip,x64 + arm64)

Mac 使用者的注意事项

- 安装包未签名:首次打开会提示「无法验证开发者」——右键点应用 → 打开,或「系统设置 → 隐私与安全性」里点「仍要打开」
- 与 Windows 版一样:不需要装 Node.js(应用内置后备)、自己配置 API Key
- 若提示「已损坏/无法打开」,在终端执行 xattr -cr /Applications/DSH\ Desktop.app 一次即可

目录结构

DSH-Desktop/
├── main.js # Electron 主进程(窗口、托盘、生命周期) ├── server.js # dsh 服务拉起/就绪检测/进程清理(纯 node,可单独测试) ├── scripts/ │ └── test-server.js # 冒烟测试 ├── build/ │ ├── icon.ico # 应用图标(多尺寸) │ ├── icon.png # 窗口/任务栏图标 │ ├── tray.png # 托盘图标 │ └── make-icons.ps1 # 图标生成脚本 └── dist/ # 打包产物
预览分享卡片长什么样 ↓zhuilong2017/dsh-desktop
分享 · DeepSeek Harness Hub
zhuilong2017/dsh-desktop

双击图标即可启动 DSH 网页服务并打开窗口

回到顶部