Back to home@icedrop-lab

dsh-plugins

Independent DeepSeek Harness plugins: cost metrics + browser_use tool. One pnpm monorepo, independently installable and vendable.

Stars
0
Language
JavaScript
Created
Sep 10, 2026
Updated
Sep 10, 2026
GitHub repo

Introduction

dsh-plugins

Independently installable DeepSeek Harness plugins, published from one pnpm monorepo.

Plugins

PackageWhat it doesInstall
@icedrop-ai/dsh-cost-meterSession-header balance/token widget and sidebar fallback with a DeepSeek top-up linkdsh plugin --profile web add @icedrop-ai/dsh-cost-meter
@icedrop-ai/dsh-browser-useOne model-facing browser_use tool backed by the browser-use CLIdsh plugin --profile web add @icedrop-ai/dsh-browser-use
@icedrop-ai/dsh-allAggregate bundle that installs both pluginsdsh plugin --profile web add @icedrop-ai/dsh-all
@icedrop-ai/dsh-pluginsRepository-root bundle; equivalent to dsh-all for link: installsdsh plugin --profile web add link:$(pwd)

Install modes

npm (recommended)

dsh plugin --profile web add @icedrop-ai/dsh-cost-meter
dsh plugin --profile web add @icedrop-ai/dsh-browser-use
# or both:
dsh plugin --profile web add @icedrop-ai/dsh-all

Restart dsh web after a bundle install. Use dsh --profile web --dump-config to confirm the bundle's # == ... layer is present.

GitHub subpath (no npm)

Install one package directly from a pinned tag or commit:

dsh plugin --profile web add \
  "git+https://github.com/icedrop-lab/dsh-plugins.git#v0.1.0&path:packages/cost-meter"

Subpath installs fetch the built lib/ that is committed in this repository, so they need no build approval. Pin a tag or commit SHA; do not point at main.

GitHub Release tarballs

Every release attaches vendor/*.tgz and vendor/plugins.lock.json:

gh release download v0.2.0 -R icedrop-lab/dsh-plugins -p '*.tgz' -D vendor/
dsh plugin --profile web add --save-exact ./vendor/icedrop-lab-dsh-cost-meter-0.2.0.tgz
dsh plugin --profile web add --save-exact ./vendor/icedrop-lab-dsh-browser-use-0.1.0.tgz

Install the individual plugin tarballs when you are not using npm: each bundle adds its own profile layer. The aggregate dsh-all-*.tgz is npm-backed — its package.json depends on the individual packages by published version, so it works after those packages are on npm. Before then, use the individual tarballs or the Git subpath installs.

Local development

pnpm install
pnpm aggregate
pnpm link-runtime        # link this machine's installed @deepseek-ai runtime
dsh plugin --profile web add link:$(pwd)/packages/cost-meter

Layout

packages/<name>/        independently published plugin packages
packages/all/           aggregate bundle (generated patch + exact deps)
scripts/aggregate.mjs   regenerates root + packages/all bundles
scripts/vendor.mjs      packs vendor tarballs + SHA-256 lock
scripts/publish-targets.mjs
scripts/check-publishable.mjs
vendor/                 generated tarballs and plugins.lock.json

Each plugin package declares dsh.bundle.patch (installability) and optionally dsh.client (Web browser half). No published dependency uses the workspace: protocol: Git-subpath installs preserve that protocol and fail.

Releasing

See RELEASING.md.

License

MIT