DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Re — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
R

dsh-re

Re

Place a “↻ Refresh” button in the top title bar of the DeepSeek Harness desktop app, to the right of “Edit”: reloads only the interface without restarting the app or interrupting the session. The host uses webserver/index-inject to inject an inline script that loads lib/ui.js and mounts it in the sh

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:lux09947-cmyk/dsh-re#98caa604478def9baf83a730a1c760869432fdb2
READMECompatibilityVersions

Description

Place a “↻ Refresh” button in the top title bar of the DeepSeek Harness desktop app, to the right of “Edit”: reloads only the interface without restarting the app or interrupting the session. The host uses webserver/index-inject to inject an inline script that loads lib/ui.js and mounts it in the shell menu bar (shadow DOM); if the menu bar is unavailable, it falls back to a corner pill.

Compatibility and provenance

Re is published as dsh-re and currently resolves to version 1.0.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
any
Release source
github
Registry updated
10/1/2026

Versions

1.0.0stable
10/1/2026

Related plugins

Loading related plugins…

Latest
1.0.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
any
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
10/1/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in ui-customization.

Whale Widgetdsh-whale-widgetDeepSeek balance whale widget in the bottom-right corner of the DSH Web interface: balance/today’s usage/peak-off-peak pricing, customizable bubble click sequence (text/balance/today/peak-off-peak/image/random phrases and parallel weighted selection), per-line styles and fonts, floating quick editinClient Ui Skill Explorer@linxin666/dsh-client-ui-skill-explorerDSH skill center: browse loaded skills by source (bundled / project / user / custom / runtime), enable or disable, create and delete, in a web GUI panel.Remote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and rClient Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.

README

dsh-re

在 DeepSeek Harness 桌面端的顶部标题栏、「编辑」右边加一个「↻ 刷新」按钮:点一下只重载界面,不重启应用、不断会话。

桌面端没有地址栏,也没有「刷新」菜单项——这是给它补上的那颗按钮。纯宿主插件,不需要 dsh.client,浏览器半边不参与。

安装

# 从 npm(发布后)
dsh plugin --profile desktop add dsh-re

# 或直接从 GitHub
dsh plugin --profile desktop add github:LUX09947-CMYK/dsh-re

装完重启一次应用(不是点刷新,见下面「为什么必须重启」):之后日常改 lib/ui.js 只需点一下刷新即可生效。

用法

  • 顶部标题栏「应用」「编辑」右边会出现 ↻ 刷新,样式与「应用 / 编辑」完全一致(同一个 shadow root 里的按钮)。
  • 点它 = 重新加载当前页面。对话、工作区、正在跑的会话都在宿主进程里,不受影响。
  • 拿不到标题栏菜单(例如在浏览器里跑 dsh web,或外壳菜单栏尚未出现)时,会退回右上角的浮动药丸:↻ 刷新 + ⇕(换角落)+ ✕(隐藏,写 localStorage)。

工作原理

  1. 宿主 lib/index.js 在 apply() 的第一件事就往 webserver/index-inject 表里推一行内联 script(kind: 'script'),内容是「建一个 <script src="/api/dsh-re/ui.js"> 并吞掉 onerror」。这里有三条硬约束,踩过才知道:

    • 桌面外壳的 index.html 从安装包静态 dist 读盘,ctx.webServer.tapIndex() 在桌面端完全不生效,结构化注入行是唯一通道;
    • 必须用内联 script 行而不是 script-src 行:后者要 await loadScript(src),失败就 reject __DSH_BOOT_READY__,整个应用起不来;
    • 因此 apply() 里不能写对象级 inject——那会把 apply() 推迟到服务就绪之后,订阅晚于那次收集,行永远进不了表。
  2. 页面 lib/ui.js(原生 DOM,零依赖)挂载:优先塞进外壳菜单栏 [data-windows-menu] 的 shadow root 里的 [role="menubar"],成为「编辑」后面的第三个按钮;菜单栏迟迟不出现时先等约 10 秒,再退回角落药丸。2 秒一次的看门狗会自愈重挂,且不会挂出第二颗。

  3. 自检:挂载成功后往 POST /api/dsh-re/ui-ping 回打一次(带 where=titlebar|corner、userAgent);GET /api/dsh-re/status 能免认证读到它——「按钮到底进没进桌面窗口」用这个判断,不用问人。

  4. 为什么「装完必须重启应用」、而「改 ui.js 只要刷新」:外壳启动宿主时把注入表存进一个模块级变量(injections = ready.injections,resources/app.asar/lib/main.js:11332),此后每次页面启动都由 ipcMain.handle(DESKTOP_IPC.boot, …) 回这份缓存(同文件 :11560)。点刷新只能拿回同一份旧表,所以换了提供这一行的插件就必须整个应用重启一次;而 ui.js 是页面按 URL 现取的(路由每次读盘 + no-store),改界面只要刷新。

宿主只注册三条 exact 路由:GET /api/dsh-re/ui.js(每次现读盘 + no-store,所以改完 ui.js 点刷新就生效)、GET /api/dsh-re/status、POST /api/dsh-re/ui-ping。

兼容

  • dsh.engines.dsh: >=0.2.0-rc.1。实测环境:DeepSeek Harness 桌面端 0.2.0-rc.2(Electron 44)。
  • 仅 Windows 桌面外壳有那条标题栏菜单栏;其它平台/浏览器形态自动走角落药丸,功能不受影响。

开发与自测

node --check lib/index.js
node --check lib/ui.js
node tools/ui-smoke.mjs      # 48 条断言,最小假 DOM 里跑真实 lib/ui.js

冒烟测试覆盖四种局面:标题栏存在(挂进 menubar、是「编辑」右边、无药丸、ping where=titlebar)、没有菜单栏(药丸全套:刷新/换角落/隐藏/自愈重挂)、声明有标题栏但它没出现(等 5 次后兜底)、菜单栏晚到(撤药丸改挂菜单栏)。

卸载

dsh plugin --profile desktop remove dsh-re

隐藏按钮只是写了个 localStorage 标记,清掉 dsh-re-ui:hidden 就回来了。

License

MIT