一个微调美观的DeepSeek harness客户端欢迎插件加入
41.3/100
综合分
20
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:npm 同名包「dsh-desktop」归属 snowcrescenter-tech/dsh-desktop,装到的可能不是本插件。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add iuikj/dsh-desktop该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · desktop
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 81 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意npm 同名包「dsh-desktop」归属 snowcrescenter-tech/dsh-desktop,装到的可能不是本插件
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-desktop @ 0.2.0
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 15:49:25
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 35 处,展示前 25 条)
- 读取本地文件main.js:55
const raw = fs.readFileSync(configPath(), 'utf8') - 写入本地文件main.js:64
fs.mkdirSync(app.getPath('userData'), { recursive: true }) - 写入本地文件main.js:65
fs.writeFileSync(configPath(), JSON.stringify(config, null, 2) + '\n', 'utf8') - 读取本地文件main.js:109
const s = JSON.parse(fs.readFileSync(windowStatePath(), 'utf8')) - 写入本地文件main.js:122
fs.mkdirSync(app.getPath('userData'), { recursive: true }) - 写入本地文件main.js:123
fs.writeFileSync(windowStatePath(), JSON.stringify(state), 'utf8') - 写入本地文件main.js:165
fs.mkdirSync(logDir(), { recursive: true }) - 写入本地文件main.js:166
fs.appendFileSync(logFile(), text, 'utf8') - 读取本地文件main.js:340
if (!fs.existsSync(iconPath)) return - 读取本地文件main.js:376
if (fs.existsSync(flag)) return - 读取本地文件main.js:571
const content = fs.readFileSync(logPath, 'utf8') - 发起网络请求server.js:51
const req = http.request( - 发起网络请求server.js:85
const req = http.request({ host, port, path: '/', method: 'GET', timeout: timeoutMs }, (res) => { - 执行外部命令来自配置/变量server.js:120
const res = spawnSync(whichCmd, [name], { encoding: 'utf8', windowsHide: true }) - 读取本地文件server.js:134
if (process.env.DSH_NODE && fs.existsSync(process.env.DSH_NODE)) return process.env.DSH_NODE - 读取本地文件server.js:148
if (c && fs.existsSync(c)) return c - 读取本地文件server.js:154
if (process.env.DSH_NPM && fs.existsSync(process.env.DSH_NPM)) return process.env.DSH_NPM - 读取本地文件server.js:162
if (fs.existsSync(cand)) return cand - 读取本地文件server.js:170
if (process.env.DSH_NPX && fs.existsSync(process.env.DSH_NPX)) return process.env.DSH_NPX - 读取本地文件server.js:178
if (fs.existsSync(cand)) return cand - 执行外部命令来自配置/变量server.js:229
child = spawn(node, [bin, 'web', '--host', host, '--port', String(port)], { - 执行外部命令来自配置/变量server.js:242
child = spawn(cmd, { - 执行外部命令来自配置/变量server.js:288
const child = spawn(cmd, { - 执行外部命令固定命令server.js:332
spawnSync('taskkill', ['/pid', String(pid), '/T', '/F'], { windowsHide: true }) - 执行外部命令固定命令server.js:342
spawnSync('taskkill', ['/pid', String(pid), '/T'], { windowsHide: true })
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
2 张 · 点击查看大图功能亮点
- 微调美观的客户端界面
README
由 DeepSeek 最新模型翻译生成DeepSeek Harness 桌面端(dsh-desktop)
把 DeepSeek Harness 的本地 Web GUI(默认 http://127.0.0.1:3080)封装成 Electron 桌面应用,双击就能启动,独立窗口运行,跟独立软件一样。
截图
DeepSeek Harness 桌面端主窗口
DeepSeek Harness 桌面端
它能做什么
- 无缝窗口(全自绘标题栏):完全抛弃原生标题栏(frame: false),标题栏与侧边栏同色,连成 L 形整体面;文件/编辑/视图/窗口/帮助 纯文字菜单直接嵌进标题栏,右上角是自绘的最小化/最大化/关闭键;内容区是一张「浮起卡片」,左上角带圆角、略亮一档,底面颜色从圆角缺口透出;标题栏/侧边栏底色跟随主题(亮/暗)实时切换,观感浑然一体。
- 智能连接:启动时先探测目标端口是否已有服务在运行,有就直接加载,没有就自动启动。
- 自动安装 DSH:启动时检测本机是否已装 DeepSeek Harness,缺失且检测到 Node.js 时,按官方方式用 npx @deepseek-ai/dsh 自动下载并启动(带进度日志)。
- 自动启动服务:若服务未运行,自动用系统 Node.js 拉起 dsh web --host 127.0.0.1 --port 3080。
展开完整文档(README 剩余 1 节)
DeepSeek Harness 桌面端(dsh-desktop)
把 DeepSeek Harness 的本地 Web GUI(默认 http://127.0.0.1:3080)封装成 Electron 桌面应用,双击就能启动,独立窗口运行,跟独立软件一样。
截图
DeepSeek Harness 桌面端主窗口
DeepSeek Harness 桌面端
它能做什么
- 无缝窗口(全自绘标题栏):完全抛弃原生标题栏(frame: false),标题栏与侧边栏同色,连成 L 形整体面;文件/编辑/视图/窗口/帮助 纯文字菜单直接嵌进标题栏,右上角是自绘的最小化/最大化/关闭键;内容区是一张「浮起卡片」,左上角带圆角、略亮一档,底面颜色从圆角缺口透出;标题栏/侧边栏底色跟随主题(亮/暗)实时切换,观感浑然一体。
- 智能连接:启动时先探测目标端口是否已有服务在运行,有就直接加载,没有就自动启动。
- 自动安装 DSH:启动时检测本机是否已装 DeepSeek Harness,缺失且检测到 Node.js 时,按官方方式用 npx @deepseek-ai/dsh 自动下载并启动(带进度日志)。
- 自动启动服务:若服务未运行,自动用系统 Node.js 拉起 dsh web --host 127.0.0.1 --port 3080。
- 就绪等待页:服务冷启动 / 首次安装期间显示加载页与安装日志,就绪后自动跳转。
- 只清理自己启动的服务:退出时只杀掉由本应用启动的服务,不会误杀你已经手动启动的 Harness。
- 单实例:重复双击只聚焦到已有窗口,不会开多个窗口。
- 日志落盘:服务启动日志写入 userData/logs/dsh-server.log,方便排查。
目录结构
dsh-app/
├── main.js # Electron 主进程:窗口、菜单、启动编排、IPC ├── server.js # 服务生命周期 + 环境检测/安装:探测 / 启动 / 等待 / 清理 ├── preload.js # 上下文桥 + 标题栏无缝注入(预留窗口控制键空间、主题同步) ├── renderer/ │ └── loading.html # 启动加载页(含安装进度日志) ├── scripts/ │ ├── bootstrap-dsh.js # 独立 DSH 检测/安装脚本(供安装器调用) │ └── bootstrap-dsh.cmd # 定位 node 并调用上面的脚本 ├── build/ │ └── installer.nsh # NSIS 自定义安装阶段:检测并安装 DSH └── package.json # 脚本与 electron-builder 打包配置
环境要求
- Node.js(含 npm/npx,dsh 依赖系统 Node 运行,需能被 where node 找到)
- DeepSeek Harness 无需手动安装:应用启动时会自动探测,缺失就用 npx @deepseek-ai/dsh 自动下载
本地运行
npm install
npm start
打包
生成未打包目录(dist/win-unpacked),便于快速验证
npm run pack
生成安装包 + zip(NSIS 安装器)
npm run dist
安装器安装阶段会自动检测本机是否已装 DeepSeek Harness:已装就直接装应用;未装且能找到 Node.js/npx 时,会顺带用 npx @deepseek-ai/dsh 预下载;找不到 Node.js 就提示先装 Node.js(应用首次启动时也会再次尝试自动下载)。
配置
首次运行会在用户数据目录(Windows 为 %APPDATA%/deepseek-harness-desktop 或 %APPDATA%/<productName>,取决于 Electron 的 userData 解析)生成 config.json。
菜单「帮助 → 打开配置目录」可直接打开。字段如下:
{
"host": "127.0.0.1", // 服务监听地址 "port": 3080, // 服务端口 "autoStart": true, // 服务未运行时是否自动启动 "autoInstallDsh": true, // 未检测到 DeepSeek Harness 时是否自动安装 "killOnQuit": true, // 退出时是否杀掉由本应用启动的服务 "workspace": "", // 服务工作目录(空串 = 用户主目录) "nodePath": "", // node.exe 路径(空串 = 自动探测) "dshBin": "" // dsh lib/bin.js 路径(空串 = 自动探测) }
探测顺序
- nodePath:优先取 DSH_NODE 环境变量,其次 where node,最后常见安装路径。
- dshBin:优先取 DSH_BIN 环境变量,其次 $DSH_HOME/profiles/node_modules/@deepseek-ai/dsh/lib/bin.js,最后 where dsh 解析。
为什么不直接用 Electron 自带的 Node?Electron 内置 Node 的 ABI 与系统 Node 不同,
dsh 的原生模块(node-pty、sharp 等)按系统 Node 编译,因此必须用系统 node.exe 启动。
待完善(Roadmap)
- [ ] 代码签名(需购买代码签名证书,通过后免除 SmartScreen 警告)
- [ ] 无 Node.js 环境下的一键安装 Node.js
- [ ] macOS / Linux 打包实测(已加配置,未在真机验证)
- [ ] GitHub Release 自动更新端到端验证
Friendship Link
Thanks for the support and feedback from the friends at LINUX DO.预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
iuikj/dsh-desktop
一个微调美观的DeepSeek harness客户端欢迎插件加入
相关插件 · 桌面端
Codex 任务面板chuspeeism/dashi-taskboard
现代化可灵活嵌入的任务面板,支持 Codex、DeepSeek Harness
★ 3,409已汉化DSH
71.7
多智能体自进化开发平台Prism-Shadow/penguin-harness
统一、稳定的 Agent 自进化框架全自动优化:任意模型 · 任意算法 · 任意 Benchmark
★ 3,111已汉化DSH
71.1
桌面宠物PC2005-cloud/dsh-pet
DSH 桌面宠物:一行命令装好即用的透明动画小桌宠,支持多开、大小位置随心配置;还内置 DIY 素材链,能用 AI…
★ 5,341已汉化DSH
71
多端 Agent 工作台GCWing/OpenBitFun
OpenBitFun 是一个高度可定制的开源 Agent 工作台,让任务按你的方式持续推进。
★ 3,449已汉化DSH
70.8
DSH Desktopanywhere-labs/dsh-desktop
为 DeepSeek Harness DSH 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 34,532已汉化DSH
70.7
桌面宠物伴侣OpenPetsHQ/openpets
桌面伴侣平台,带宠物、插件,还能选配本地智能体集成。
★ 1,353已汉化DSH
70.2