一键把桌面窗口钉在其他应用之上,随时保持可见
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/25 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add jeremytenjo/dsh-plugin-always-on-top该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · desktop
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 7 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 2 处,展示前 2 条)
- 发起网络请求index.js:281
const response = await fetch(`http://127.0.0.1:${String(port)}/json/list`, { signal }); - 发起网络请求client.js:51
`;function x(){if(typeof document>"u")return()=>{};let e=document.createElement("style");return e.dataset.dshAlwaysOnTop="",e.textContent=j,document.h
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
把 DeepSeek Harness 桌面窗口固定在其他所有应用之上,按钮就在源代码管理旁边。
README
由 DeepSeek 最新模型翻译生成dsh-plugin-always-on-top
把 DeepSeek Harness 桌面窗口钉在所有其他应用之上,直接在输入区操作。
钉住按钮位于源码管理和待办触发器之间。窗口处于普通状态时,它显示为灰色轮廓。点击后图标变成实心白色图钉,Harness 窗口便浮在其他窗口之上。再点一次即可取消。
| 关闭 | 开启 |
| Pin off | Pin on |
悬停时会显示原生标题,与其他输入区操作一致:
Hover title
功能
- 输入区里一个 28 × 28 的按钮,就在源码管理旁边。
- 关闭时是轮廓图钉,开启时是实心白色图钉。
- 原生悬停标题(「Toggle always on top」)。
- 读取真实的 BrowserWindow.isAlwaysOnTop() 状态,而不是只存在于 UI 的标志。
- 窗口钉住时刷新页面,状态依然保留。
- 不改写 app.asar,不重新签名,插件加载后无需重启。
- 支持英文和中文标签。
安装
桌面应用不自带 dsh 命令,所以可靠的做法是本地检出再链接配置档。
展开完整文档(README 剩余 1 节)
dsh-plugin-always-on-top
把 DeepSeek Harness 桌面窗口钉在所有其他应用之上,直接在输入区操作。
钉住按钮位于源码管理和待办触发器之间。窗口处于普通状态时,它显示为灰色轮廓。点击后图标变成实心白色图钉,Harness 窗口便浮在其他窗口之上。再点一次即可取消。
| 关闭 | 开启 |
| Pin off | Pin on |
悬停时会显示原生标题,与其他输入区操作一致:
Hover title
功能
- 输入区里一个 28 × 28 的按钮,就在源码管理旁边。
- 关闭时是轮廓图钉,开启时是实心白色图钉。
- 原生悬停标题(「Toggle always on top」)。
- 读取真实的 BrowserWindow.isAlwaysOnTop() 状态,而不是只存在于 UI 的标志。
- 窗口钉住时刷新页面,状态依然保留。
- 不改写 app.asar,不重新签名,插件加载后无需重启。
- 支持英文和中文标签。
安装
桌面应用不自带 dsh 命令,所以可靠的做法是本地检出再链接配置档。
git clone https://github.com/jeremytenjo/dsh-plugin-always-on-top.git
cd dsh-plugin-always-on-top
python3 scripts/install-local.py
脚本会:
1. 备份 ~/.dsh/profiles/desktop/package.json,
2. 把 "dsh-plugin-always-on-top": "link:/path/to/this/checkout" 加进 dependencies,
3. 把 dsh-plugin-always-on-top 追加到 dsh.profile.bundles,
4. 创建 node_modules 符号链接。
然后彻底退出 DeepSeek Harness(托盘图标 → Quit;只关窗口只会把它隐藏),再重新打开。图钉就会出现在输入区。
设置 DSH_DESKTOP_PROFILE 可以指向别的配置档。
手动安装
如果你更想手动编辑,在 ~/.dsh/profiles/desktop/package.json 里加上依赖,并把包名追加到已有的 dsh.profile.bundles 数组——不要替换整个数组:
"dependencies": {
"dsh-plugin-always-on-top": "link:/absolute/path/to/dsh-plugin-always-on-top"
}
"bundles": [
"…your existing bundles…", "dsh-plugin-always-on-top" ]
ln -s /absolute/path/to/dsh-plugin-always-on-top \
~/.dsh/profiles/desktop/node_modules/dsh-plugin-always-on-top
退出并重新打开应用。
卸载
cd dsh-plugin-always-on-top
python3 scripts/install-local.py --uninstall
退出并重新打开应用。package.json.bak-always-on-top 备份会保留在原处,供你参考。
工作原理
Desktop Host 是 Node 模式的子进程,访问不到 BrowserWindow。外壳也没有提供任何用于设置窗口层级的 IPC 通道。常见的变通做法是给 app.asar 打补丁,但在 macOS 上这会破坏应用的代码签名,而且需要启动两次。
这个插件走了一条更轻的路:
client button
│ GET/POST /__dsh/always-on-top
▼
Host half (Node-mode child)
│ SIGUSR1 (asks the Electron main process for its Node inspector)
▼
Electron main inspector
│ BrowserWindow.setAlwaysOnTop(value, 'floating')
│ BrowserWindow.isAlwaysOnTop()
▼
inspector.close()
主进程里求值的表达式是固定的,只插入一个布尔值。切换一次只需几百毫秒,inspector 在这段时间内打开,并在 finally 块里关闭。如果插件动手之前已经有 inspector 开着,插件就不去碰它。
/Applications 下的任何东西都不会被修改。
安全
这是本地高级用户工具,它有意拿调试器当控制通道。
切换进行期间,Electron 主进程会在 127.0.0.1:9229(或下一个空闲端口)上暴露 Node inspector。任何本地进程只要在这个短暂窗口内连上,就能在主进程里执行代码。切换一结束,插件立刻关闭 inspector,绝不留下长期可用的 eval 端点。
如果你不能接受这个取舍,就别装这个插件。像 dsh-window-control 这样的插件走的是 app.asar 路线,自带签名方面的注意事项。
发信号之前,桥接层会先读 Electron 的 fuse wire。当前构建(0.2.1-rc.3,Electron 44)启用了 EnableNodeCliInspectArguments。如果将来的构建把它关掉,插件就拒绝发送 SIGUSR1——那会终止应用——按钮则提示窗口调试不可用。
限制
- 仅限桌面应用。 从终端启动的 dsh web 没有 Electron 父进程;按钮显示为禁用,并附说明。
- macOS 和 Linux 是主要目标。Windows 走 process._debugProcess,未测试。
- 层级不会持久化:退出并重新打开 Harness 后,窗口从普通层级开始。
- setAlwaysOnTop 控制的是窗口层级,不是 Space 归属。另一个 Space 上的全屏应用仍可能盖住 Harness。
- 状态在挂载时读取,每次切换后再读一次。页面开着时如果有别的东西改了窗口层级,重新加载页面即可同步。
- 如果别的调试器占用了 inspector 端口范围,切换会失败,并弹出错误提示。
已在 macOS(Apple silicon)上用 DeepSeek Harness 0.2.1-rc.3 和 Electron 44.7.0 测试过。
开发
pnpm install
pnpm test # host helpers
pnpm build # src/client.js -> client.js
client.js 由 scripts/build-client.mjs 生成;不要手动编辑。CI 会跑测试、重新构建客户端,如果提交的 bundle 过期就报错。
目录结构:
| 路径 | 作用 |
| index.js | Host 半边:回环路由和 inspector 桥接 |
| src/client.js | 浏览器半边:输入框按钮 |
| client.js | 生成的浏览器 bundle |
| cordis.patch.yml | 插入 Host 插件的 bundle 层 |
| scripts/install-local.py | 把本地检出链接到 Desktop 配置档 |
| test/bridge.test.mjs | bridge 的纯函数测试 |
许可证
MIT © 2026 Jeremy Tenjo预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
jeremytenjo/dsh-plugin-always-on-top
一键把桌面窗口钉在其他应用之上,随时保持可见
相关插件 · 桌面端
Codex 任务面板chuspeeism/dashi-taskboard
现代化可灵活嵌入的任务面板,支持 Codex、DeepSeek Harness
★ 3,409已汉化DSH
71.7
多智能体自进化开发平台Prism-Shadow/penguin-harness
统一、稳定的 Agent 自进化框架全自动优化:任意模型 · 任意算法 · 任意 Benchmark
★ 3,080已汉化DSH
71.1
桌面宠物PC2005-cloud/dsh-pet
DSH 桌面宠物:一行命令装好即用的透明动画小桌宠,支持多开、大小位置随心配置;还内置 DIY 素材链,能用 AI…
★ 5,109已汉化DSH
71
多端 Agent 工作台GCWing/OpenBitFun
OpenBitFun 是一个高度可定制的开源 Agent 工作台,让任务按你的方式持续推进。
★ 3,425已汉化DSH
70.8
DSH Desktopanywhere-labs/dsh-desktop
为 DeepSeek Harness DSH 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 34,279已汉化DSH
70.8
桌面宠物伴侣OpenPetsHQ/openpets
桌面伴侣平台,带宠物、插件,还能选配本地智能体集成。
★ 1,353已汉化DSH
70.2