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

桌面客户端 kevenxz/dsh-desktop

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

双击启动原生窗口,托盘常驻复用本机会话

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · desktop
装得上吗
实装验证未通过(dependency_conflict),装前请到仓库确认最近更新与 issue
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 82 天前
档位由哪些信号合成

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

验证判据与等级说明 →
⚠︎ 实装验证未通过(dependency_conflict · 2026/9/26) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 11 处,展示前 11 条)
  • 写入本地文件
    src/main.js:43
    fs.appendFileSync(logFile(), line + os.EOL);
  • 读取本地文件
    src/main.js:57
    return candidates.find((p) => fs.existsSync(p));
  • 读取本地文件
    src/main.js:63
    if (envNode && fs.existsSync(envNode)) return { exe: envNode, useElectronNode: false };
  • 执行外部命令固定命令
    src/main.js:64
    const probe = spawnSync("node", ["--version"], { encoding: "utf8", windowsHide: true });
  • 写入本地文件
    src/main.js:74
    fs.mkdirSync(def, { recursive: true });
  • 读取本地文件
    src/main.js:81
    return fs.existsSync(p) ? p : null;
  • 写入本地文件
    src/main.js:106
    fs.mkdirSync(workspace, { recursive: true });
  • 执行外部命令来自配置/变量
    src/main.js:118
    serverProc = spawn(node.exe, args, { cwd: workspace, env, windowsHide: true, stdio: ["ignore", "pipe", "pipe"] });
  • 发起网络请求
    src/main.js:155
    const res = await fetch(url, { signal: AbortSignal.timeout(1000) });
  • 写入本地文件
    src/main.js:250
    click: () => { fs.mkdirSync(app.getPath("userData"), { recursive: true }); shell.openPath(app.getPath("userData")); },
  • 执行外部命令固定命令
    src/main.js:263
    spawnSync("taskkill", ["/pid", String(serverProc.pid), "/t", "/f"], { windowsHide: true, stdio: "ignore" });
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 双击启动原生窗口
  • 托盘常驻
  • 共享配置档与会话

DeepSeek Harness 的 Windows 桌面客户端——原生窗口、托盘,共享 DSH 配置档和会话。

README

由 DeepSeek 最新模型翻译生成
DeepSeek Harness Desktop 把 DeepSeek Harness Web UI 带到原生 Windows 桌面。 Platform Electron DSH License DeepSeek Harness Desktop 是一个轻量的 Windows 桌面封装。应用启动时会在本机回环地址上运行随包提供的 dsh web,等待服务就绪后再用安全隔离的 Electron 窗口加载它。无需每次手动打开终端和浏览器,同时继续使用本机已有的 DSH profile、会话、凭据和设置。 [!NOTE] 这是社区项目,并非 DeepSeek 官方发行版。核心能力来自 DeepSeek Harness。
展开完整文档(README 剩余 1 节)
DeepSeek Harness Desktop
把 DeepSeek Harness Web UI 带到原生 Windows 桌面。

Platform
Electron
DSH
License

DeepSeek Harness Desktop 是一个轻量的 Windows 桌面封装。应用启动时会在本机回环地址上运行随包提供的 dsh web,等待服务就绪后再用安全隔离的 Electron 窗口加载它。无需每次手动打开终端和浏览器,同时继续使用本机已有的 DSH profile、会话、凭据和设置。

[!NOTE]
这是社区项目,并非 DeepSeek 官方发行版。核心能力来自 DeepSeek Harness。

功能特性

- 双击启动:自动运行 dsh --profile web 并打开原生窗口
- 无端口冲突:默认动态选择一个空闲的本地端口
- 数据复用:沿用 $DSH_HOME,默认位置为 %USERPROFILE%\.dsh
- 托盘常驻:关闭窗口仅隐藏应用,后台会话和任务继续运行
- 托盘菜单:显示主窗口、浏览器打开、查看日志、完全退出
- 单实例:重复启动时自动聚焦已有窗口
- 安全隔离:仅监听 127.0.0.1,启用渲染进程沙箱并禁止 Node.js 集成
- 干净退出:退出应用时终止完整的 DSH 子进程树
- 两种分发形式:NSIS 安装包和免安装 Portable 单文件版

系统要求

- Windows 10 或 Windows 11
- 从源码运行或构建时需要 Node.js >= 22.12.0 和 npm

打包后的应用会携带 DSH 依赖;程序优先使用系统 Node.js,找不到时会回退到 Electron 自带的 Node.js 运行时。

从源码运行

git clone https://github.com/kevenxz/dsh-desktop.git
cd dsh-desktop
npm install
npm start

首次启动时,应用会自动创建默认工作区 %USERPROFILE%\DSHWorkspace。

配置

可以通过启动参数或环境变量指定 agent 的工作区:

启动参数
npx electron . --workspace "G:\workspace\deepseek"

环境变量 $env:DSH_DESKTOP_WORKSPACE = "G:\workspace\deepseek"
npm start

支持的配置项:

| 配置 | 用途 | 默认值 |
| --workspace | 指定 agent 工作区 | %USERPROFILE%\DSHWorkspace |
| DSH_DESKTOP_WORKSPACE | 通过环境变量指定工作区 | 同上 |
| DSH_DESKTOP_PORT | 固定本地 Web 服务端口 | 自动选择空闲端口 |
| DSH_DESKTOP_NODE | 指定 Node.js 可执行文件 | 系统 Node.js,随后回退到 Electron |
| DSH_DESKTOP_SMOKE=1 | 页面加载成功后自动退出,用于冒烟验证 | 关闭 |

启动参数 --workspace 的优先级高于 DSH_DESKTOP_WORKSPACE。

数据与日志

应用不会复制或迁移 DSH 数据,而是直接复用 $DSH_HOME 中的 profile、会话、凭据与设置。

桌面壳和 DSH 服务日志位于:

%APPDATA%\DeepSeek Harness\dsh-desktop.log

也可以右键托盘图标,选择“打开日志目录”。日志可能包含工作区路径和运行信息,公开日志前请先检查敏感内容。

构建

重新生成应用图标
npm run icon

同时构建 NSIS 安装包和 Portable 版本
npm run dist

只构建 Portable 版本
npm run dist:portable

构建解包目录,适合本地调试
npm run dist:dir

构建产物位于 release/:

DeepSeek-Harness-Setup-.exe
DeepSeek-Harness-Portable-.exe
win-unpacked/

release/ 和 node_modules/ 已从 Git 中排除,不会提交到仓库。

冒烟验证

冒烟模式会启动 DSH、等待页面完成加载、输出 SMOKE_OK,然后自动退出:

$env:DSH_DESKTOP_SMOKE = "1"
npx electron .
$env:DSH_DESKTOP_SMOKE = $null

工作原理

flowchart LR
A["启动桌面应用"] --> B["解析工作区与 Node.js"]
B --> C["选择本地端口"]
C --> D["启动 dsh web 子进程"]
D --> E["等待服务就绪"]
E --> F["Electron 窗口加载 127.0.0.1"]
F --> G["关闭窗口时驻留托盘"]
G --> H["退出时清理进程树"]
外部 HTTP(S) 链接不会留在应用窗口内,而是交给系统默认浏览器打开。

常见问题

启动后提示“未找到 dsh CLI”

确认依赖安装完整,然后重新安装:

Remove-Item -Recurse -Force node_modules
npm install

DSH 服务启动超时

从托盘菜单打开日志目录,检查 dsh-desktop.log 中最近的错误。也可以设置 DSH_DESKTOP_PORT,排除本机安全软件或端口策略的影响。

点击关闭按钮后应用仍在运行

这是预期行为。关闭窗口会隐藏到系统托盘;如需完全退出,请在托盘菜单中选择“退出”。

参与贡献

欢迎提交 Issue 和 Pull Request。提交改动前请至少运行一次冒烟验证;涉及打包配置时,也建议执行 npm run dist:dir。

许可证

本项目采用 MIT License。DeepSeek Harness 及其他依赖分别遵循各自的许可证。
预览分享卡片长什么样 ↓kevenxz/dsh-desktop
分享 · DeepSeek Harness Hub
kevenxz/dsh-desktop

双击启动原生窗口,托盘常驻复用本机会话

这是你的仓库?认领条目

回到顶部