DeepSeek Harness Plugin

RaulLazaro/dsh-pwa-plugin

Stars ★ 1 Category Development & Runtime Added 2026-09-03

PWA plugin for DSH — adds offline support, service worker caching, and install-as-app capability.

Install

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

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

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

README

PWA plugin for DeepSeek Harness that adds offline support and install-as-app capability.

Features

  • Service Worker with smart caching strategy
  • PWA Manifest with icons and metadata
  • Automatic updates — silently activates new versions
  • Offline-first for static assets
  • Custom icons (gradient background with DSH branding)

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 with SVG icons. To generate PNG icons (required for some browsers):

cd dsh-pwa-plugin
npm install sharp --save-dev
node scripts/generate-icons.js

How It Works

  1. The host plugin serves /sw.js, /manifest.webmanifest, and icon files
  2. It injects a service worker registration script into the HTML
  3. The service worker caches static assets for offline use
  4. The manifest enables installing the app as a PWA
  5. Updates are detected automatically and silently activated

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           # Favicon
│   └── icons/                # App icons (SVG + PNG)
├── scripts/
│   ├── generate-icons.js     # Icon generator
│   ├── install.js            # Verification script
│   └── verify.js             # Verification
├── example/
│   ├── cordis.patch.yml      # Configuration example
│   └── package.json          # Profile example
├── cordis.patch.yml          # Plugin registration
├── LICENSE
└── package.json

License

MIT

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.