DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Pwa — DeepSeek Harness 插件(DSH Plugin)
← Plugins
P

dsh-pwa

Pwa

DSH PWA 插件:提供 manifest + service worker + 可安装图标,并支持用于反向代理部署的 basePath

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:haoliangwu/dsh-pwa#6609dfff78d4652060975409552555b4c09a1f29
README兼容性版本

兼容性与来源证明

Pwa 以 dsh-pwa 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/8/20

版本

0.1.0stable
2026/8/20

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/8/25
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层Client Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。Client Ui Git Graph@linxin666/dsh-client-ui-git-graph外部 dsh Web GUI 插件:空会话 Git 分支选择器和 Git 图,包含实际的主机端 Git 操作与防护,作为 dsh 配置文件包

README

dsh-pwa

Makes a running `dsh web` instance installable as a PWA — manifest + service worker + icons, with `basePath` support for reverse-proxy deployments.

DeepSeek Harness PWA running as a standalone macOS app window

A pure host-side plugin for DeepSeek Harness. The web frontend already ships a manifest and favicon in its dist, but no service worker or SW registration script — so Chrome's installability check fails. This plugin fills that gap and lets the app be mounted under a reverse-proxy sub-path.

Install

dsh plugin --profile web add github:haoliangwu/dsh-pwa

Built lib/ and assets/ are committed, so the git install is one line — no prepare script, no build step. Restart dsh --profile web after install (bundle layer stacks compose at boot).

Configure

basePath defaults to / (install at the origin root). For a reverse-proxy deployment mounted at /dsh/, add the plugin to your profile's cordis.patch.yml (~/.dsh/profiles/web/cordis.patch.yml) via the insert form (the config-overlay form only tunes plugins already listed in dsh.profile.bundles):

- insert:
    - id: dsh-pwa
      name: dsh-pwa
      config:
        basePath: /dsh/

After a dsh plugin add install, the bare - id: dsh-pwa row is already in place; only append the config: block to tune basePath.

Normalization applies automatically: ''/'/' → '/', '/dsh' → '/dsh/', 'dsh/' → '/dsh/', '/dsh/' unchanged. Values containing ? or # are rejected.

How it works

On apply(ctx, config), the plugin registers five WebServer routes under ${basePath}pwa/*:

  • manifest.webmanifest → the web manifest, built in JS with basePath-rooted URLs, served as application/manifest+json
  • sw.js → assets/sw.js, served as text/javascript
  • icon-192.png / icon-512.png → assets/icon-192.png / assets/icon-512.png, served as image/png
  • favicon.svg → assets/favicon.svg, served as image/svg+xml

Each static asset is read once at apply time and cached in the handler closure (no per-request disk reads), and the returned disposers are released through ctx.effect so HMR/unload cleans up.

It also taps ctx.webServer.tapIndex(transform) to rewrite index.html:

  • repoints <link rel="manifest"> to ${basePath}pwa/manifest.webmanifest
  • repoints <link rel="icon" ...> to ${basePath}pwa/favicon.svg
  • injects before </body> a serviceWorker.register('${basePath}pwa/sw.js', { scope: '${basePath}' }) script

Verify

  1. Start dsh --profile web.
  2. Open Chrome DevTools → Application panel → Manifest. Confirm the name, icons (192/512/svg), and start_url/scope rooted at basePath.
  3. Application → Service Workers should list one active worker from ${basePath}pwa/sw.js.
  4. Open Lighthouse (or check Application → the installability banner) — the site should now pass the install checklist and show beforeinstallprompt on first visit.

Build from source

pnpm install
pnpm gen-icons   # regenerates assets/icon-192.png + assets/icon-512.png from assets/favicon.svg
pnpm build       # emits lib/index.js, lib/invariant.js
pnpm test        # config normalization + manifest/tapIndex unit tests

lib/ and assets/ are committed so git installs work without a build step. After changing source, run pnpm build (and pnpm gen-icons when the icon source changes) and commit both trees.

License

MIT