DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

mba1398 /

mba1398/dsh-done

Verified

This plugin has no description yet.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@087fa6ef

dsh-done

Task completion celebration popup with sound for DeepSeek Harness. When an agent finishes a task (status goes running → idle), a celebratory popup appears in the page (confetti + fanfare), then auto-dismisses.

Features

  • 🎉 Popup overlay in the shell.overlay slot when a task completes
  • 🎊 Confetti animation + bounce-in
  • 🔊 Web Audio fanfare (ascending C5-E5-G5-C6), no external audio file
  • ⏳ Auto-closes after ~3.2 s
  • 🎲 Random encouraging message on each completion

Install

dsh plugin --profile web add dsh-done

or from a local checkout:

dsh plugin --profile web add /path/to/dsh-done

Then restart the profile.

Build (for contributors)

pnpm install
pnpm run build          # tsc (host) + tsdown (client bundle)
pnpm publish
  • Host entry: src/index.ts → lib/index.js
  • Client bundle: src/client/index.tsx → lib/client.js

Publish / distribute

  • Publish to npm, then tag the GitHub repo with the dsh-plugin topic so DSH users can discover it.
  • To appear in the marketplace lists, open a PR in the relevant community curated list (e.g. awesome-dsh-plugin-series repositories).

How it works

  • Host (src/index.ts): listens to agent/status; when status is idle, records the completion timestamp. Exposes celebration/check RPC.
  • Client (src/client/index.tsx): polls celebration/check every 500 ms; on a fresh completion, shows the popup in shell.overlay.

Runtime adaptation (important)

This plugin uses the DSH dynamic plugin bridge for Host↔Client RPC by default:

  • Host: ctx.get('harness')?.handle('celebration/check', …)
  • Client: ctx.host.call('celebration/check', …)

If the target host is a standard Cordis runtime (no harness/host builtin bridge), switch to a webServer route instead:

  • Host: ctx.inject(['webServer'], (hostCtx) => hostCtx.effect(() => webServer.route('GET /dsh-done/check', …)))
  • Client: fetch('/dsh-done/check', …) + JSON polling

Once those two seams are adapted, the plugin works out of the box. (You could also emit a session/event from the host and subscribe via sessions on the client.)

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 087fa6efcba1

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout