Introduction¶
In the DeepSeek Harness (DSH) runtime, processes run in the background, making state changes hard to perceive directly. To address this pain point, the Whale Girl desktop pet plugin is introduced to provide real-time feedback on working status through a desktop floating window.
Plugin Positioning¶
This is a desktop pet plugin running on WhaleHarbor, maintained by MoonlitDropOfBlood. It uses 2D asset splitting and CSS animation technology to map the runtime status of DeepSeek Harness to the desktop.
Core Features¶
- 2D Asset Splitting + CSS Animations: The original artwork is split into 13 parts (base, eyes, mouth, etc.). CSS keyframes drive actions such as breathing, blinking, and sweating, supporting 60fps animations.
- Real-time Status Reflection: Supports switching among 8 states: idle, busy, waiting for approval, waiting for question, error, completion celebration, drowsy, and sub-agent avatar.
- Desktop Interaction: Supports dragging, poking (clicking), right-click menu (small/medium/large size switching), and tray menu.
- Bubble Stats Panel: Tracks real-time current session tool call count, cumulative busy minutes, and poke count.
- Floating Window Features: Transparent always-on-top floating window that does not steal focus and avoids interrupting the workflow.
Installation and Activation¶
The installation command is as follows:
dsh plugin --profile web add @duke-dsh-plugins/dsh-whaleharbor-pet
In mainland China network environments, explicitly specify --registry=https://registry.npmjs.org to avoid mirror source interference.
After installation, the DSH core must be restarted (Ctrl+Alt+R or Settings → Core → Restart) for the plugin to take effect.
Typical Usage¶
During local development, you can use the node command to export the floating window page:
node -e "console.log(require('./index.js')._buildPetPage())"
Open the generated index.html directly in a browser. You can add the parameter ?mood=xxx to lock a specific state for preview.
Applicable Scenarios and Notes¶
- Platform Requirements: Requires the WhaleHarbor desktop shell to provide floating window capabilities (currently only Windows builds are published). When launched via a pure browser or CLI, the plugin idles silently with no side effects.
- Floating Window Limits: The limit is 3 floating windows per plugin and 6 globally; this plugin uses only 1.
- Window Behavior: Changing the floating window size closes and rebuilds the floating window, and its position is reset to the default.
- Fallback Handling: If parts are missing, it automatically falls back to a placeholder whale and does not show a blank page.
- State Synchronization:
float.window.statehas replace-latest-value semantics, and the latest state is automatically resent when the page refreshes.
Summary¶
This plugin visually solves the problem of opaque background process status, making it suitable for developers who need to monitor DSH runtime status.