自动部署本地服务并托盘驻留,双击即用
28.3/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add llyyhh0487/desk-harness该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · desktop
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 72 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 264 处,展示前 39 条)
- 写入本地文件main.js:57
fs.appendFileSync(launchLogPath, '[' + new Date().toISOString() + '] ' + line + '\n'); - 写入本地文件main.js:89
fs.appendFileSync(crashLogPath(), line, 'utf8'); - 读取本地文件main.js:148
const saved = JSON.parse(fs.readFileSync(configPath, 'utf8').replace(/^ FEFF/, '')); - 写入本地文件main.js:169
try { fs.writeFileSync(configPath, JSON.stringify(cfg, null, 2)); } catch { } - 读取本地文件main.js:196
if (fs.existsSync(p)) { - 写入本地文件main.js:199
fs.copyFileSync(p, dst); - 读取本地文件main.js:238
const src = (cfg.logoFile && fs.existsSync(cfg.logoFile)) ? cfg.logoFile : logoPath; - 读取本地文件main.js:242
const buf = fs.readFileSync(src); - 读取本地文件main.js:246
try { logoDataUri = 'data:image/png;base64,' + fs.readFileSync(logoPath).toString('base64'); } - 读取本地文件main.js:249
try { fxJsSource = fs.readFileSync(fxJsPath, 'utf8'); } catch (e) { log('fx.js read failed', e.message); } - 写入本地文件main.js:271
fs.copyFileSync(cliBgOverride, dst); - 执行外部命令来自配置/变量main.js:345
const r = spawnSync(process.env.ComSpec || 'cmd.exe', ['/d', '/s', '/c', 'npm root -g'], { - 发起网络请求main.js:389
const req = http.get({ host: '127.0.0.1', port, path: '/', timeout: 3000 }, (res) => { - 写入本地文件main.js:451
fs.mkdirSync(base, { recursive: true }); - 删除本地文件main.js:454
fs.rmSync(probe, { force: true }); - 执行外部命令来自配置/变量main.js:523
const child = spawn(process.env.ComSpec || 'cmd.exe', ['/d', '/s', '/c', '"' + line + '"'], Object.assign({ windowsHide: true, windowsVerbatimArgument - 执行外部命令来自配置/变量main.js:555
execFile(nodeExe, ['--version'], { windowsHide: true, env: spawnEnv(), timeout: 20000 }, (err, stdout) => { - 执行外部命令来自配置/变量main.js:604
const wr = spawnSync(process.env.ComSpec || 'cmd.exe', ['/d', '/s', '/c', 'where npx'], { - 执行外部命令来自配置/变量main.js:661
const r = spawnSync(process.env.ComSpec || 'cmd.exe', ['/d', '/s', '/c', 'where pnpm'], { - 执行外部命令固定命令main.js:708
await execFile('powershell.exe', ['-NoProfile', '-ExecutionPolicy', 'Bypass', '-Command', ps], { windowsHide: true }); - 发起网络请求main.js:722
fetch(url, { signal: controller.signal }).then((res) => { - 删除本地文件main.js:771
fs.rmSync(path.join(envDir(), 'node.zip'), { force: true }); - 删除本地文件main.js:772
fs.rmSync(path.join(envDir(), 'unzip'), { recursive: true, force: true }); - 删除本地文件main.js:795
fs.rmSync(unzipDir, { recursive: true, force: true }); - 删除本地文件main.js:803
fs.rmSync(envNodeDir(), { recursive: true, force: true }); - 删除本地文件main.js:808
fs.rmSync(zip, { force: true }); - 发起网络请求main.js:1303
const res = await fetch(url, { headers: { 'user-agent': STORE_UA }, signal: controller.signal }); - 发起网络请求main.js:1448
const res = await fetch(`${r}/${pkg}`, { headers: { 'user-agent': STORE_UA }, signal: AbortSignal.timeout(20000) }); - 请求外部主机api.github.commain.js:1472
const res = await fetch(`https://api.github.com/repos/${fullName}/releases?per_page=3`, { - 发起网络请求main.js:1472
const res = await fetch(`https://api.github.com/repos/${fullName}/releases?per_page=3`, { - 发起网络请求main.js:1521
const res = await fetch(`${hit.registry}/${guess}`, { headers: { 'user-agent': STORE_UA }, signal: AbortSignal.timeout(15000) }); - 请求外部主机api.github.commain.js:1819
const res = await fetch(`https://api.github.com/repos/${fullName}`, { headers: { 'user-agent': STORE_UA } }); - 请求外部主机github.commain.js:1840
const res = await fetch(`https://github.com/${fullName}`, { headers: { 'user-agent': STORE_UA } }); - 请求外部主机registry.npmjs.orgmain.js:1863
const res = await fetch(`https://registry.npmjs.org/${pkg}`, { headers: { 'user-agent': STORE_UA } }); - 请求外部主机registry.npmjs.orgmain.js:2019
const res = await fetch(`https://registry.npmjs.org/-/v1/search?text=${encodeURIComponent(query.q)}&size=250&from=${from}`, { - 请求外部主机registry.npmjs.orgmain.js:2198
const res = await fetch(`https://registry.npmjs.org/${encodeURIComponent(name)}/latest`, { - 写入剪贴板main.js:2375
clipboard.writeText(lines.join('\n')); - 发起网络请求fx.js:116
return fetch('/api/' + method, { - 启用终端会话(PTY)term-helper.js:29
term = pty.spawn(shell, [], {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库
涉及外部主机:api.github.com、github.com、registry.npmjs.org、api.deepseek.com
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 自动部署本地服务
- 托盘驻留
- 终端停靠面板
README
由 DeepSeek 最新模型翻译生成🖥️ DESK HARNESS
DeepSeek Harness 的 Windows 桌面壳 —— 一个把网页版“装进”原生窗口的 Electron 魔法盒子 ✨
你以为你打开的是一个网页?不,你双击的是一个桌面应用。窗口里跑的是原汁原味的 DeepSeek Harness 网页版,外面套的是一层丝滑的桌面皮肤 🧥:托盘驻留、真终端、插件商店、任务栏进度条……全都开箱即用,目标机器上什么都不用装,双击 exe 就是全部。
没有 Node.js?没关系,它自己下 📦 没有 pnpm?没关系,它自己装 🛠️ 连服务都是它自己拉起来的 🚀 —— 你只管坐下聊天。
✨ 特色一览
| # | 特色 | 一句话 |
| 1 | 🪄 零环境依赖 | 自动检测 + 一键部署:Node/pnpm/npx/dsh 缺啥补啥,有就不重复下 |
| 2 | 🚀 服务自管理 | 在 workspace 里 npx --yes dsh web 拉起,与手动终端一字不差;三级降级 + 秒级失败感知 |
| 3 | 🌌 科技感启动页 | 打字机状态、检查清单、倒计时/立即进入、首次引导、自定义背景与欢迎语 |
| 4 | 🎨 自绘标题栏 | 渐变毛玻璃、菜单、会话标题、Token 用量胶囊、💰 余额胶囊 |
展开完整文档(README 剩余 1 节)
🖥️ DESK HARNESS DeepSeek Harness 的 Windows 桌面壳 —— 一个把网页版“装进”原生窗口的 Electron 魔法盒子 ✨ 你以为你打开的是一个网页?不,你双击的是一个桌面应用。窗口里跑的是原汁原味的 DeepSeek Harness 网页版,外面套的是一层丝滑的桌面皮肤 🧥:托盘驻留、真终端、插件商店、任务栏进度条……全都开箱即用,目标机器上什么都不用装,双击 exe 就是全部。 没有 Node.js?没关系,它自己下 📦 没有 pnpm?没关系,它自己装 🛠️ 连服务都是它自己拉起来的 🚀 —— 你只管坐下聊天。 ✨ 特色一览 | # | 特色 | 一句话 | | 1 | 🪄 零环境依赖 | 自动检测 + 一键部署:Node/pnpm/npx/dsh 缺啥补啥,有就不重复下 | | 2 | 🚀 服务自管理 | 在 workspace 里 npx --yes dsh web 拉起,与手动终端一字不差;三级降级 + 秒级失败感知 | | 3 | 🌌 科技感启动页 | 打字机状态、检查清单、倒计时/立即进入、首次引导、自定义背景与欢迎语 | | 4 | 🎨 自绘标题栏 | 渐变毛玻璃、菜单、会话标题、Token 用量胶囊、💰 余额胶囊 | | 5 | 🖥️ 真终端停靠面板 | node-pty 真终端、侧边滑出不挤对话区、宽度记忆 | | 6 | 📄 文档停靠面板 | 本地 md/代码/日志即开即读、可编辑保存 | | 7 | 📁 工作区文件面板 | 拖文件进工作区,AI 直接可读 | | 8 | 🧩 dsh-plugin 插件商店 | 全量索引、精选/全部/我的插件、双语 README、更新检测、一键重启生效 | | 9 | 🔔 桌面原生体验 | 托盘驻留、Ctrl+Alt+D 唤起、任务栏进度条、完成通知、单实例 | | 10 | 🖼️ 视觉定制 | 壁纸(图/视频)、界面+exe 图标一体换、深浅主题、置顶、开机自启 | | 11 | 🎛️ 命令面板 | Ctrl+K 集中所有开关与入口 | | 12 | 🔒 安全底座 | 渲染沙箱、IPC 最小权限、服务只绑 127.0.0.1、密钥不落盘 | 📖 详细介绍 🪄 零环境依赖:装完就能用 双击安装包 → 首次启动弹出一个部署窗口,自动检测你机器上的 Node.js / pnpm / npx 和 @deepseek-ai/dsh: - 有 → 直接复用,零下载、秒过; - 没有 → 自动从镜像下载 Node.js、安装 pnpm、生成 npx 外壳、把依赖装进「安装目录\deepseekharness-desktop\workspace」——全程不用你敲一个命令。 装完它会把这些运行时加进用户 PATH,系统终端里也能直接用。部署位置由安装包选的安装目录决定,卸载时一并清干净。 🚀 服务自管理:它就是你的“手动拉起”,自动化了 网页版需要一个本地服务(dsh web,只监听 127.0.0.1)。DESK HARNESS 的做法和你手动排查时一模一样:进到 workspace 目录,执行 npx --yes dsh web。 - 启动时检测端口:已有服务 → 直接挂上,不重复拉起;没有 → 自己拉; - 拉不起?自动降级三连:裸 dsh → 绝对路径(8.3 短路径),每一步秒级感知失败,不用傻等; - 全程零 PowerShell 黑箱、全链路日志落盘(见下方“故障排查”); - 装/删插件后一键「重启服务并重启桌面端」,走同一套引擎。 🌌 启动页:打开即仪式感 打字机动画逐字报状态:运行环境检查 ✅ → 本地服务检测/启动 🚀 → 就绪。首次使用带你走 API Key 引导;此后 3 秒倒计时自动进入,或点「立即进入」。欢迎语、背景图都能在控制面板里换。 🎨 自绘标题栏:网页穿上了西装 渐变 + 毛玻璃 + 霓虹分界线的自绘标题栏,右侧无缝挂接 Windows 原生窗口按钮。中间显示当前会话标题;右侧一排胶囊: - Token 胶囊——实时显示本会话 token 用量与上下文占用(与网页版同源数据); - 💰 余额胶囊——本地读取 .credentials.yaml 里的 Key,每 5 分钟查询一次账户余额,点击直达官方用量页。 🖥️ 真终端 + 📄 文档 + 📁 工作区:三合一停靠面板 窗口右侧滑出的停靠面板(不压缩对话区,宽度可拖拽记忆): - 终端:基于 node-pty 的真终端(不是样子货),cwd 直接落在 workspace; Ctrl+ 秒开; - 文档:选一个本地 md/代码/日志即开即读,还能编辑保存(仅限你亲自选过的文件,安全白名单); - 工作区:把文件拖进 files/ 目录,AI 侧直接可读,喂资料零摩擦。 🧩 插件商店 dsh-plugin 标题栏一键展开的侧边商店,索引来自 GitHub topic + Search API + npm 注册表三源聚合: - 分区浏览:🌟 精选(评分制)/ 全部 / 📦 我的插件; - 卡片即点即看详情:简介、标签、星标、双语 README(自带翻译,本地缓存); - 安装一条龙:镜像测速选源 → npm 预构建直装(自动构建白名单兜底)→ 完成后引导一键重启生效; - 已装插件显示当前版本,检测到新版出现「更新 vX.Y.Z」按钮,卸载按钮常驻。 🔔 桌面原生体验 系统托盘驻留(关窗不下线)、Ctrl+Alt+D 全局唤起、任务完成/审批的系统通知、任务进度实时同步到 Windows 任务栏进度条、单实例、开机自启动。 🖼️ 视觉定制 - 壁纸:图片 / mp4 / webm / gif 都行,浓度滑杆可调,恢复默认 = 网页版原味背景; - 图标:界面图标与 exe 图标一体更换——标题栏/启动页/窗口/任务栏/托盘即时生效,exe 图标重新打包生效,一键恢复默认; - 主题:深/浅自动跟随系统;窗口置顶、特效开关(视觉特效 / 标题栏 / Token 胶囊 / 进度条)逐个可关。 🎛️ 命令面板 Ctrl+K 一个面板收拢全部:主题、壁纸、启动页、窗口、工具五组选项,点行即切换,快捷键党狂喜。 🔒 安全底座(发布前经过完整审计) - 渲染进程 contextIsolation + sandbox,preload 只暴露白名单 API; - 终端命令执行、文档读写、部署窗口等特权通道按窗口来源最小授权; - 服务只绑定 127.0.0.1,不对外监听; - API Key 只从本地凭据读取、只发 DeepSeek 官方域名,不落日志不写盘。 📦 安装(给用户看的,就 3 步) 1. 去 Releases 下载 desk-harness-setup-1.0.0.exe 2. 双击 → 选个目录 → 装完自动启动 3. 等它自己部署完(有 Node 的机器零下载秒过)→ 开聊 💬 卸载?控制面板 → 卸载。干净利落,只留你的会话数据(.dsh)在原地等你。 📂 数据去哪了:部署环境在 \deepseekharness-desktop\,配置在 %APPDATA%\deepseekharness-desktop\,会话/插件与命令行版共享 C:\Users\\.dsh——凭据不用重新配。 🔨 从源码构建(给开发者看的) cd desktop npm install # 慢的话挂镜像: $env:ELECTRON_MIRROR = "https://npmmirror.com/mirrors/electron/" $env:ELECTRON_BUILDER_BINARIES_MIRROR = "https://npmmirror.com/mirrors/electron-builder-binaries/" npm start # 开发模式:直接复用仓库里的 dsh 后端,边改边跑 npm run pack # 打包 → dist/desk-harness-setup-1.0.0.exe 小彩蛋 🥚:开发模式下它会向上回溯目录树找仓库的 node_modules\@deepseek-ai\dsh——把 exe 丢进仓库任意角落都能认出家。 🔍 拉不起服务?先别慌 这套桌面端是全链路日志化的,%APPDATA%\deepseekharness-desktop\ 里躺着四个侦探 🕵️: | 文件 | 它在说什么 | | launch.log | 拉起全链路:环境快照 → 每次命令/cwd → 端口探测每步 → 服务前 10 秒输出 → 结论 | | service-out.log | 服务自己的 stdout/stderr(报错都在这) | | server.log | 桌面端实际执行的启动命令 | | setup.log | 首次部署全过程 | 手动排查口诀:打开 workspace 目录 → 终端敲 npx dsh web。桌面端用的就是这条命令,一模一样。 🗂 目录结构 desktop/ main.js 主进程大脑(窗口/托盘/菜单/部署/监督式拉起/商店/终端/余额) preload.js 渲染层桥梁(contextIsolation + sandbox,只放行白名单 API) fx.js / fx.css 注入网页版的桌面皮肤(特效/标题栏/商店/面板/命令面板) splash.html 启动页 setup.html 首次部署窗口 dock.html / dock.js / term-helper.js 终端停靠面板(xterm + node-pty) prompt.html 端口设置 close-dialog.html 关闭确认 build/ 图标与 NSIS 脚本 scripts/restart-service.ps1(手动重启脚本) ⚖️ License MIT —— 拿去用,玩得开心 🎉
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
llyyhh0487/desk-harness
自动部署本地服务并托盘驻留,双击即用
相关插件 · 桌面端
Codex 任务面板chuspeeism/dashi-taskboard
现代化可灵活嵌入的任务面板,支持 Codex、DeepSeek Harness
★ 3,409已汉化DSH
71.7
多智能体自进化开发平台Prism-Shadow/penguin-harness
统一、稳定的 Agent 自进化框架全自动优化:任意模型 · 任意算法 · 任意 Benchmark
★ 3,125已汉化DSH
71.1
桌面宠物PC2005-cloud/dsh-pet
DSH 桌面宠物:一行命令装好即用的透明动画小桌宠,支持多开、大小位置随心配置;还内置 DIY 素材链,能用 AI…
★ 5,465已汉化DSH
71
多端 Agent 工作台GCWing/OpenBitFun
OpenBitFun 是一个高度可定制的开源 Agent 工作台,让任务按你的方式持续推进。
★ 3,457已汉化DSH
70.8
DSH Desktopanywhere-labs/dsh-desktop
为 DeepSeek Harness DSH 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 34,710已汉化DSH
70.7
桌面宠物伴侣OpenPetsHQ/openpets
桌面伴侣平台,带宠物、插件,还能选配本地智能体集成。
★ 1,378已汉化DSH
70.2
这是你的仓库?认领条目