dsh-pwa-plugin
Manifest validPWA plugin for DSH — adds offline support, service worker caching, and install-as-app capability.
DSH PWA Plugin
PWA plugin for DeepSeek Harness that adds offline support and install-as-app capability.
Features
- Service Worker with smart caching strategy
- PWA Manifest with proper maskable icons
- Automatic updates — silently activates new versions
- Offline-first for static assets
- Official DSH whale icon — derived from the upstream SVG favicon
Installation
1. Add as a dependency
In your DSH web profile's package.json:
{
"dependencies": {
"dsh-pwa-plugin": "file:~/workspace/dsh-pwa-plugin"
}
}
2. Register the plugin
In your profile's cordis.patch.yml:
- insert:
- id: dsh-pwa
name: 'dsh-pwa-plugin'
3. Restart DSH
dsh web
Generate PNG Icons
The plugin ships pre-built PNG icons. To regenerate (requires sharp):
cd dsh-pwa-plugin
node scripts/generate-icons.js
This reads the official public/favicon.svg and produces:
| File | Size | Purpose |
|---|---|---|
icon-192.png | 192×192 | Regular (any) |
icon-192-maskable.png | 192×192 | Maskable (20% safe zone) |
icon-512.png | 512×512 | Regular (any) |
icon-512-maskable.png | 512×512 | Maskable (20% safe zone) |
How It Works
- The host plugin serves
/sw.js,/manifest.webmanifest, and icon files - It injects a service worker registration script into the HTML
- The service worker caches static assets (including icons) for offline use
- The manifest enables installing the app as a PWA
- Updates are detected automatically and silently activated
- DSH's built-in
/favicon.svgis used as-is (not overridden)
Caching Strategy
| Resource Type | Strategy | Description |
|---|---|---|
| HTML | Network-first | Always tries to fetch the latest version |
| JS/CSS/Fonts/Images | Cache-first | Serves from cache if available |
| API calls | Not cached | Always goes to the network |
Limitations
- Requires HTTPS to work (except localhost)
- Service worker cannot cache API calls
- Updates require a page reload (automatic after detection)
Project Structure
dsh-pwa-plugin/
├── src/
│ ├── host/
│ │ └── index.js # Host plugin (Node.js)
│ └── sw.js # Service Worker
├── public/
│ ├── manifest.webmanifest # PWA Manifest
│ ├── favicon.svg # DSH whale icon (same as upstream)
│ └── icons/ # PWA icons (maskable + regular)
├── scripts/
│ ├── generate-icons.js # Icon generator (sharp)
│ ├── install.js # Verification script
│ └── verify.js # Verification
├── cordis.patch.yml # Plugin registration
├── LICENSE
└── package.json
License
MIT
Comments
Loading…
Similar plugins
by cynch18
DSH web plugin: toggle plugins on/off from the GUI without restarting the server
★ 4
MIT
JavaScript
Sep 7, 2026
dsh plugin --profile web add dsh-profile-plugin-switchby Yebeimu
A DSH plugin: collect pending ask_user_question prompts from other sessions and answer them without leaving the current one.
★ 0
MIT
JavaScript
Oct 23, 2026
dsh plugin --profile web add dsh-sideaskby AJUbest
A DSH plugin that distinguishes official built-in DSH plugins and user custom plugins on the external interface.It can collect and manage all your previously created custom plugins 这是一个 DSH 插件管理插件,可在w
★ 5
MIT
JavaScript
Sep 9, 2026
dsh plugin --profile web add dsh-plugin-optimizationby vlln
DSH 插件:定时循环(/loop 命令 + loop 工具 + 活动状态条)。官方 bundle 插件,dsh plugin --profile web add 安装
★ 7
↓ 186/wk
MIT
JavaScript
Oct 21, 2026
dsh plugin --profile web add @vlln/dsh-loopby Tokeii0
DSH web plugin: 黑盒/代审 sidebar workspace (P0–P7, per-finding SRC reports).
★ 17
JavaScript
Aug 22, 2026
dsh plugin --profile web add dsh-lovelyauditby oxlyn
Card-style plugin manager in Settings: enable/disable each plugin through the profile patch layer, install-source details, npm update check with one-click update, uninstall, search, and load-error bad
★ 3
↓ 561/wk
MIT
TypeScript
Oct 1, 2026
dsh plugin --profile web add dsh-plugin-mgr