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
Introduction
dsh-plugins
Independently installable DeepSeek Harness plugins, published from one pnpm monorepo.
Plugins
| Package | What it does | Install |
|---|---|---|
@icedrop-ai/dsh-cost-meter | Session-header balance/token widget and sidebar fallback with a DeepSeek top-up link | dsh plugin --profile web add @icedrop-ai/dsh-cost-meter |
@icedrop-ai/dsh-browser-use | One model-facing browser_use tool backed by the browser-use CLI | dsh plugin --profile web add @icedrop-ai/dsh-browser-use |
@icedrop-ai/dsh-all | Aggregate bundle that installs both plugins | dsh plugin --profile web add @icedrop-ai/dsh-all |
@icedrop-ai/dsh-plugins | Repository-root bundle; equivalent to dsh-all for link: installs | dsh 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