Introduction

When running long tasks with DSH, the Web GUI usually gets minimized to a background tab. To know when a task finishes, you either have to stare at the status or keep switching back and refreshing. These “completion notifications” are purely UI enhancements. Following DSH’s “everything is a plugin” philosophy, you don’t need to modify the DSH source code; you just need to install a plugin. The dsh-whale-celebration introduced below does exactly that: when the root agent completes a task and becomes idle, a DeepSeek official whale appears at the bottom of the page, spraying water, and sinks back into the screen after 3 seconds.

What is it

dsh-whale-celebration is a DSH Web plugin maintained by kob-repo and licensed under MIT. It listens for agent status changes and only plays the celebration animation when the root agent (the agent the user directly converses with) changes from running to idle; it does not trigger on sub-agent completion. The entire animation does not occupy the interaction layer; the overlay is set with pointer-events: none, so it does not intercept any clicks.

Core Features

  • Official Whale Icon: The logo path is sourced from the deepseek-harness official repository (MIT).
  • Spraying Animation: Includes a water jet and splashing droplets, lasting 3 seconds in total with a timing sequence of 0.4s jump up → spray → 2.5s sink.
  • Side-by-Side Celebration: When multiple tasks complete in a short period, up to 3 whales can spray water simultaneously.
  • Theme Adaptation: The color scheme follows the CSS variable --dsw-alias-brand-primary, automatically adapting to light/dark modes.
  • Non-Blocking: The overlay uses pointer-events: none and does not intercept any clicks.
  • Precise Triggering: Celebration only occurs upon root agent completion; sub-agents do not trigger it.

How it Works

The plugin consists of two halves: Host and Client:

  1. Host Half: Runs inside the DSH process: it listens to agent/status events; a root agent transitioning from running to idle is recorded as a task completion. It exposes a polling interface GET /api/whale-celebration/state to retrieve and zero out the pending count.
  2. Client Half: Runs in the browser: registered in the global overlay shell.overlay, it polls the Host every 0.9s. Upon receiving a completion signal, it plays the whale spraying animation.

Installation and Enablement

First, install from npm:

dsh plugin --profile web add dsh-whale-celebration

Replace --profile with your own profile name. You can also install directly from the GitHub repository:

dsh plugin --profile web add git+https://github.com/kob-repo/dsh-whale-celebration.git

The package declares dsh.bundle, which is automatically merged into the profile’s bundle layer during installation; no manual editing of configuration files is required. Regarding dependencies, peerDependencies requires react ^18.2.0; the client side injects @deepseek-ai/dsh-client-runtime with the platform set to web.

After installation, restart DSH once, and the plugin will take effect as a standard bundle layer.

Verification and Removal

After the installation and restart steps above, you can confirm the plugin is running in two ways:

  1. Send a task to the agent; after completion, a whale spraying water should appear at the bottom of the page for 3 seconds;
  2. Directly visit http://localhost:3080/api/whale-celebration/state; returning {"count":0} indicates the Host half is running.

If you no longer need it, remove it:

dsh plugin --profile web remove dsh-whale-celebration

Restart DSH once after removal to complete the cleanup. The animation in the browser will disappear immediately upon removal; if there is any residual content on the page, a simple refresh will clear it.

Customizing Animation

To adjust the whale size, color, or spraying effect:

  1. Open lib/client.js in the plugin directory;
  2. Modify the styles .ds-whale-item and @keyframes ds-*;
  3. Restart DSH.

Behavioral Details

  • No repetition in multi-tab: The pending count is zeroed out as soon as it is retrieved by any tab’s polling; a single completion only plays once.
  • Missed tasks are replayed: Tasks completed while the browser was closed will be played once, with a maximum pending count accumulation of 12 times.
  • No reaction when a sub-agent completes is by design: Only the root agent with which the user directly converses is celebrated to avoid disturbance.

Applicability and Notes

Suitable for users who keep DSH running for long periods and don’t want to stare at the screen to confirm completion—once the whale appears, it indicates the current conversation’s root agent is now idle.

Two notes:

  • The plugin runs with the permissions of the current dsh process; you should check the source code and license before installing. The code is licensed under MIT; the whale icon path comes from deepseek-harness (MIT) and is for display purposes only; the DeepSeek brand and logo belong to their respective owners.
  • This is a local external plugin that does not modify DSH source code, and uninstallation only requires a single command and a restart.

Summary

dsh-whale-celebration is a small feature that solves a very specific problem: knowing that a task has finished without staring at the screen. Install it, restart, and the next time a task ends, a whale will leap out from the bottom of the page.

  • Community Plugin Directory (Independent site, no official affiliation with DeepSeek or HF): https://www.skillhub.cn/plugins/kob-repo/dsh-whale-celebration
  • Source Code Repository: https://github.com/kob-repo/dsh-whale-celebration