llyyhh0487
desk-harness
DESK HARNESS — DeepSeek Harness 的 Windows 桌面壳:自动部署并拉起本地 dsh 服务,托盘驻留、终端停靠面板、dsh-plugin 插件商店,开箱即用。deepseek-harness · dsh-plugin · electron
- Stars
- 1
- Language
- JavaScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
🖥️ 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 步)
- 去 Releases 下载
desk-harness-setup-1.0.0.exe - 双击 → 选个目录 → 装完自动启动
- 等它自己部署完(有 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 —— 拿去用,玩得开心 🎉