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

悬浮小窗 gulijushi-svg/dsh-mini-window

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

点悬浮球把主窗口缩成置顶小窗,随时发消息看回复

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

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

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

状态速览

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

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

验证判据与等级说明 →

可信度证据

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

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

可执行外部命令发起外部网络请求
查看扫描证据(共 2 处,展示前 2 条)
  • 执行外部命令固定命令
    index.js:58
    execFile('powershell.exe', args, { windowsHide: true, timeout: 20000 }, (error, stdout, stderr) => {
  • 发起网络请求
    client.js:219
    const response = await fetch(url, init);
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

DeepSeek Harness 小窗插件:常驻悬浮球入口 + 屏幕级置顶小窗 + 页内小窗,消息直通当前会话并实时显示模型回复。

README

由 DeepSeek 最新模型翻译生成
dsh-mini-window 把 DeepSeek Harness 变成常驻屏幕的「音乐播放器式」小窗:右下角一个悬浮球,点一下就让 Harness 主窗口缩成置顶小窗——切到任何应用、任何全屏窗口,它都浮在最上层;小窗里有输入框,消息直接进当前会话,模型的回复实时显示在里面。 ┌─ 屏幕右下角 ────────────────┐ │ DSH 小窗 ✕ │ │ 你 │ │ 帮我看下这个报错 │ │ 模型 · 生成中… │ │ 这个报错是…… │ │ ┌────────────────────────┐ │ │ │ 给小窗发消息… │ │ │ └────────────────────────┘ │ └──────────────────────────────┘ ● ← 悬浮球(入口) 特性 - 悬浮球入口:常驻在 Harness 页面上,可拖动、位置记忆。 - 单击 = 开关「屏幕级小窗」(窗口置顶 + 缩到右下角) - 右键 = 开关「页内小窗」(不动窗口的轻量形态) - 屏幕级小窗:通过 Win32 SetWindowPos 给 Harness 主窗口加 HWND_TOPMOST,真正的操作系统级置顶,切到浏览器、编辑器、全屏视频都盖不住它;再点一次球恢复原尺寸。 - 同时给出页内小窗:可拖动、右下角缩放、一键收成标题条,适合不想动窗口的时候。
展开完整文档(README 剩余 1 节)
dsh-mini-window

把 DeepSeek Harness 变成常驻屏幕的「音乐播放器式」小窗:右下角一个悬浮球,点一下就让 Harness 主窗口缩成置顶小窗——切到任何应用、任何全屏窗口,它都浮在最上层;小窗里有输入框,消息直接进当前会话,模型的回复实时显示在里面。

┌─ 屏幕右下角 ────────────────┐ │ DSH 小窗 ✕ │ │ 你 │ │ 帮我看下这个报错 │ │ 模型 · 生成中… │ │ 这个报错是…… │ │ ┌────────────────────────┐ │ │ │ 给小窗发消息… │ │ │ └────────────────────────┘ │ └──────────────────────────────┘ ● ← 悬浮球(入口)

特性

- 悬浮球入口:常驻在 Harness 页面上,可拖动、位置记忆。
- 单击 = 开关「屏幕级小窗」(窗口置顶 + 缩到右下角)
- 右键 = 开关「页内小窗」(不动窗口的轻量形态)
- 屏幕级小窗:通过 Win32 SetWindowPos 给 Harness 主窗口加 HWND_TOPMOST,真正的操作系统级置顶,切到浏览器、编辑器、全屏视频都盖不住它;再点一次球恢复原尺寸。
- 同时给出页内小窗:可拖动、右下角缩放、一键收成标题条,适合不想动窗口的时候。
- 输入直通当前会话:走 conversation.composer.dock 的 inputActions (setDraft + submit),和主界面输入框是同一条通道。
- 回复实时同步:订阅 Chat 快照,取最后一条用户消息与最后一条助手文本块,流式刷新。
- 跟随主题与语言:颜色只用 --dsw-alias-* token;文案走 dsh locale 服务(zh-CN / en)。

安装

方式 A:dsh CLI(推荐)

dsh plugin --profile desktop add github:gulijushi-svg/dsh-mini-window

然后重启 dsh 一次。

方式 B:手动安装(无需 CLI)

1. 把仓库放到任意目录,例如 D:\plugins\dsh-mini-window。
2. 在 %USERPROFILE%\.dsh\profiles\desktop\package.json 的 dependencies 里加一行:

"dsh-mini-window": "file:D:/plugins/dsh-mini-window"

3. 在同一个文件的 dsh.profile.bundles 数组末尾加 "dsh-mini-window"。
4. 把整个目录复制进 %USERPROFILE%\.dsh\profiles\desktop\node_modules\dsh-mini-window。
5. 重启 dsh。

改动生效范围:client.js(浏览器半边)刷新页面即生效; index.js(Host 半边)与 cordis.patch.yml 需要重启 dsh。
restart-dsh.cmd 是一个现成的重启脚本。

使用

| 操作 | 效果 |
| 单击悬浮球 | 进入 / 退出屏幕级小窗(置顶,右下角 560×640) |
| 右键悬浮球 | 进入 / 退出页内小窗 |
| 拖动悬浮球 | 换位置(自动记住) |
| 小窗输入框回车 | 发送(Shift+Enter 换行) |

小窗形态下会自动隐藏 Harness 顶部菜单条,把空间留给对话与输入。

原理

浏览器半边 client.js ├─ shell.overlay / mini-window.launcher → 悬浮球(常驻入口) ├─ shell.overlay / mini-window.inline → 页内小窗 ├─ shell.overlay / mini-window.toast → 轻提示 └─ conversation.composer.dock / .bridge → 会话桥:sessionId + inputActions + 最新消息

点击悬浮球 └─ POST /api/mini-window/state { mode: 'enter' | 'exit' } ↓ Host 半边 index.js ├─ dsh webServer 路由 /api/mini-window(同源,自定义 dsh-app:// 协议下不会撞跨源) └─ 兜底回环端口 127.0.0.1:19731 ↓ scripts/win-mini-window.ps1 └─ FindMainWindow + SetWindowPos(HWND_TOPMOST) / 恢复原 rect

为什么不用 Document Picture-in-Picture? 实测在 Electron 壳里,
documentPictureInPicture.requestWindow() 虽然能创建窗口,但那个窗口被合成进 Harness
主窗口内部(命中测试返回的顶层窗口仍是主窗口),切到别的应用就被盖住——跨应用常驻必须动原生窗口,这才引出了 Host 半边的 Win32 方案。

桥的存在原因:shell.overlay 是 root 作用域,拿不到会话级 props;所以用一个注册在 conversation.composer.dock 的空组件把会话能力发布到模块级 store,浮层再从这里读。

兼容性

- Windows:完整功能(窗口控制走 Win32 / user32.dll)。
- 其它平台:页内小窗形态可用;屏幕级小窗的 Host 调用会失败并给出提示。
- 实测环境:DeepSeek Harness 桌面版(Electron 44,Windows,150% 缩放)。
- 若 Harness 主窗口带最小尺寸约束,小窗会按实际尺寸重新贴右下角,不会越出屏幕。

目录结构

dsh-mini-window/
├─ package.json # dsh.bundle.patch + dsh.client 声明 ├─ cordis.patch.yml # bundle 补丁:插入 Host 插件 ├─ index.js # Host 半边:控制端点 + 调用 Win32 脚本 ├─ client.js # 浏览器半边:浮层、小窗、会话桥 ├─ scripts/ │ └─ win-mini-window.ps1 # Win32:置顶 / 尺寸 / 还原(UTF-8 BOM) ├─ locale/{zh,en}.json # 插件元信息文案 ├─ icon.svg └─ README.md

已知限制

- 小窗模式下隐藏的是 dsh 自己的顶部菜单条;窗口的最小化 / 关闭按钮仍由壳提供。
- 屏幕级小窗会改变主窗口的尺寸与层级 —— 它就是把主窗口变成小窗,不是另开一个窗口,所以退出时依赖保存的原 rect(脚本写在 %TEMP%\dsh-mini-window-state.json)。
- scripts/win-mini-window.ps1 必须保持 UTF-8 with BOM: Windows PowerShell 5.1 会按 ANSI 读取无 BOM 的 UTF-8,中文注释会撑坏语法。

仓库

<https://github.com/gulijushi-svg/dsh-mini-window>

License

MIT
预览分享卡片长什么样 ↓gulijushi-svg/dsh-mini-window
分享 · DeepSeek Harness Hub
gulijushi-svg/dsh-mini-window

点悬浮球把主窗口缩成置顶小窗,随时发消息看回复

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