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

桌面窗口壳 TaoSmile/dsh-shell

DeepSeek Harnessv0.0.1
TaoSmile82 天前有提交已提供中文文档扫描:含敏感能力

双击即把已装好的 Harness 装进独立桌面窗口

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

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

自动兼容检查未通过:仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add TaoSmile/dsh-shell
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · dev
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/09/25·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/06·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 82 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-shell @ 0.0.1
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/24 11:37:58

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 10 处,展示前 10 条)
  • 读取本地文件
    src/main.js:28
    try { return JSON.parse(fs.readFileSync(boundsFile(), 'utf8')) } catch { return null }
  • 写入本地文件
    src/main.js:31
    try { fs.writeFileSync(boundsFile(), JSON.stringify(win.getBounds())) } catch {}
  • 写入本地文件
    src/host-manager.js:35
    try { fs.mkdirSync(logDir(), { recursive: true }) } catch {}
  • 写入本地文件
    src/host-manager.js:43
    fs.appendFileSync(path.join(logDir(), 'host.log'), `[${stamp}] ${line}\n`)
  • 发起网络请求
    src/host-manager.js:64
    const req = http.get(url + '/', { timeout: timeoutMs }, res => {
  • 执行外部命令来自配置/变量
    src/host-manager.js:117
    const child = spawn(bin, args, {
  • 执行外部命令固定命令
    src/host-manager.js:213
    spawn('taskkill', ['/pid', String(child.pid), '/T', '/F'], { windowsHide: true, stdio: 'ignore' })
  • 读取本地文件
    src/config.js:36
    file = JSON.parse(fs.readFileSync(configPath(), 'utf8'))
  • 写入本地文件
    src/config.js:40
    fs.mkdirSync(path.dirname(configPath()), { recursive: true })
  • 写入本地文件
    src/config.js:41
    fs.writeFileSync(configPath(), JSON.stringify(cached, null, 2))
扫描于 2026/11/6(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 独立桌面窗口运行
  • 双击启动

DeepSeek Harness 的桌面应用外壳,基于 Electron,支持 Windows。

README

由 DeepSeek 最新模型翻译生成
dsh-shell 一个动作,把已经装好的 DeepSeek Harness 装进桌面窗口 零新环境 · 零核心改动 · 会话与设置原样继承 License: MIT [Platform: Windows]() [Node: >=22.19]() Upstream: deepseek-harness PRs Welcome English · 为什么需要它 · 快速开始 · 工作原理 · 常见问题 为什么需要它 官方姿势是在终端里跑 dsh web 再开浏览器。对已经装好 harness 的你来说,只是想少两步: | 痛点 | dsh-shell 的答案 | | 每次开终端、敲命令、复制 URL | 双击一次,窗口自己弹出来 | | 忘记 harness 有没有在跑 | 自动探测:在跑就包住它,没跑就替你拉起来 | | 标签页里找不到、被淹没 | 独立桌面窗口 + 托盘常驻(Electron 版) | | 端口冲突 / "HTTP 200"假就绪白屏 | --port 0 自动分配端口;就绪以官方 URL 行为准 | 它不是什么:不是仿制 UI、不是发行版、不打包运行时。窗口里 100% 是官方 Web GUI——壳的全部工作都在窗口之外。 快速开始 零安装版(推荐先试):双击 启动Harness桌面.vbs(无黑窗,失败弹提示),完。
展开完整文档(README 剩余 1 节)
dsh-shell

一个动作,把已经装好的 DeepSeek Harness 装进桌面窗口

零新环境 · 零核心改动 · 会话与设置原样继承

License: MIT
[Platform: Windows]()
[Node: >=22.19]()
Upstream: deepseek-harness
PRs Welcome

English · 为什么需要它 · 快速开始 · 工作原理 · 常见问题

为什么需要它

官方姿势是在终端里跑 dsh web 再开浏览器。对已经装好 harness 的你来说,只是想少两步:

| 痛点 | dsh-shell 的答案 |
| 每次开终端、敲命令、复制 URL | 双击一次,窗口自己弹出来 |
| 忘记 harness 有没有在跑 | 自动探测:在跑就包住它,没跑就替你拉起来 |
| 标签页里找不到、被淹没 | 独立桌面窗口 + 托盘常驻(Electron 版) |
| 端口冲突 / "HTTP 200"假就绪白屏 | --port 0 自动分配端口;就绪以官方 URL 行为准 |

它不是什么:不是仿制 UI、不是发行版、不打包运行时。窗口里 100% 是官方 Web GUI——壳的全部工作都在窗口之外。

快速开始

零安装版(推荐先试):双击 启动Harness桌面.vbs(无黑窗,失败弹提示),完。

启动Harness桌面.vbs ──▶ 自动探测/拉起 harness ──▶ 独立桌面窗口(Edge app-mode)

- 习惯看控制台输出的可以双击 启动Harness桌面.cmd(行为相同,保留可见窗口)。
- 桌面快捷方式(带白鲸图标):powershell -File launcher\start-shell-edge.ps1 -CreateDesktopShortcut,执行一次即可。
- 开机自启(可选,默认关闭):双击 开机自启开关.vbs 一键切换——弹窗显示当前状态,确认后生效。命令行等价:-ToggleAutostart。
- Edge 版体验特性:原生启动动画(双击后立即弹出小窗:白鲸图标 + 流动进度条,harness 就绪后自动打开 GUI 窗口)、单实例复用(不会重复拉起)、首次启动屏幕居中显示(小屏自动收缩)+ 之后记住窗口位置、关闭窗口自动停掉由它拉起的 harness(附着模式绝不干预已有实例)。

完整版(托盘 / 状态窗 / 日志 / 重试):

cd dsh-shell
npm install # 已内置 npmmirror 镜像,解决 Electron 二进制下载失败
npm start # 或双击 start-electron.cmd

工作原理

flowchart LR
A[双击 启动Harness桌面.cmd] --> B{探测 http://127.0.0.1:3080响应含 __DSH_BOOT__ 才算就绪}
B -->|已在运行| C[开窗附着不拥有生命周期,退出不影响]
B -->|未运行| D[复用现有环境拉起node lib/bin.js web --port 0]
D --> E[解析官方就绪行dsh web: http://127.0.0.1:port]
E --> C
C --> F[官方 Web GUI 原样呈现会话/设置共享 ~/.dsh]

两条铁律:

1. 就绪判定只认 harness 官方就绪行 dsh web: http://…,绝不把"HTTP 200"当就绪(防止白屏)。
2. 零注入:主窗口加载官方页面原样,壳的 preload 只注入自己的状态小窗。

两种模式对比

| | 🚀 Edge 零安装版 | 🖥️ Electron 完整版 |
| 安装 | 无 | npm install(一次性) |
| 窗口 | Edge app-mode 独立窗口(专用 profile,记住位置) | 原生窗口 + 尺寸记忆 |
| 托盘 | - | 显示/隐藏、重启、打开日志 |
| 状态小窗 | - | 启动进度 / 错误 / 日志 / 重试 |
| 单实例 / 关窗即停 | ✅ 复用探测 + 关窗自动停拉起的实例 | ✅ 单实例锁 + 退出即停 |
| 适合 | 快速体验、零门槛 | 日常主力 |

和其他桌面端有什么不同

社区已有一体化打包(如 anywhere-labs、xiincs 等):它们内置 Node/依赖,给没装过 harness 的新用户开箱即用。dsh-shell 走另一条路:

| | dsh-shell | 一体化打包 |
| 面向 | 已经装好 harness 的用户 | 全新用户 |
| 新增环境 | 零 | 自带 Node + 依赖 |
| harness 改动 | 零 | 常附带集成插件 |
| 数据 | 与命令行共享 ~/.dsh | 通常独立数据目录 |
| 体积/维护面 | 最小 | 完整产品 |

预览

| 主窗口(官方 Web GUI 原样呈现) |
| 主窗口 |

配置

首次运行自动生成 %APPDATA%\dsh-shell\dsh-shell.json(Electron 版;默认值见 src/config.js):

| 键 | 默认 | 说明 |
| harnessCheckout | D:\workspace\deepseek-harness | A1 拉起使用的 checkout 路径 |
| attachUrl | http://127.0.0.1:3080 | A0 附着探测地址 |
| spawnMode | auto | tsx(源码)/ built(构建产物)/ auto(失败自动回退) |
| dshHome | '' | 空 = 继承环境(默认 ~/.dsh);可显式指定 |
| spawnArgs | [] | 追加给 dsh web 的参数(默认已有 --port 0) |

路线图

- [x] A0 附着 / A1 拉起 / Edge 零安装版 / Electron 壳 + 托盘
- [x] T1 体验:白鲸图标、原生启动动画、桌面快捷方式、无黑窗、单实例复用、窗口居中与记忆、关窗即停、开机自启可选开关
- [ ] electron-builder 打包:NSIS 安装包 + 便携版 + 图标
- [ ] 托盘显示运行中的 job / goal 状态
- [ ] dsh:// 深链
- [ ] 桌面通知(走 harness 官方插件体系,不进核心)
- [ ] macOS / Linux 适配

常见问题

- 会和我终端里跑的 dsh web 冲突吗? 不会。壳先探测,命中就附着同一个实例,不会起第二份、不会抢写同一份配置。
- 数据在哪? 沿用 ~/.dsh(或你设置的 DSH_HOME),与命令行共享同一份会话。
- 怎么停止壳拉起的实例? Edge 版关闭窗口即自动停止(仅限它自己拉起的);也可手动 .\launcher\start-shell-edge.ps1 -Stop。Electron 版退出即停。附着模式(A0)两者都不干预。
- 壳会联网下载东西吗? 不会。唯一例外是首次 npm install electron(已内置 npmmirror 镜像)。

目录结构

dsh-shell/
├─ 启动Harness桌面.vbs 零安装双击启动(无黑窗,推荐) ├─ 启动Harness桌面.cmd 零安装双击启动(可见控制台输出) ├─ 开机自启开关.vbs 开机自启开关(可选,默认关闭) ├─ start-electron.cmd Electron 版双击启动 ├─ src/ Electron 主进程 │ ├─ main.js 窗口 / 托盘 / 菜单 / 生命周期 │ ├─ host-manager.js 壳↔harness 唯一桥:attach / spawn / 就绪解析 / 日志 │ ├─ config.js 配置读写 │ └─ preload.js 仅注入壳自己的状态小窗 ├─ ui/ │ └─ status.html Electron 版启动状态 / 错误 / 日志 ├─ launcher/start-shell-edge.ps1 Edge 版核心逻辑(含原生启动动画) ├─ scripts/make-icon.ps1 图标生成器(白鲸图形,可改样式重新生成) └─ assets/ icon.png / icon.ico / tray.png

参与贡献

任何形式的 issue / PR 都欢迎,见 CONTRIBUTING.md。边界只有一条:不改 harness 核心(对上游的改动请直接提给 deepseek-ai/deepseek-harness)。

Star 历史

Star History Chart

许可

MIT,与上游 deepseek-ai/deepseek-harness(MIT)保持一致。

如果它帮你省了几步,点个 ⭐ 再走~
预览分享卡片长什么样 ↓TaoSmile/dsh-shell
分享 · DeepSeek Harness Hub
TaoSmile/dsh-shell

双击即把已装好的 Harness 装进独立桌面窗口

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部