- Início
- Plugins
- Melhorias de UI
- dsh-whale-pet
dsh-whale-pet
er1c0v0/dsh-whale-pet
An unofficial whale-girl desktop pet for the DeepSeek Harness Web UI.
Instalar
dsh plugin --profile web add github:er1c0v0/dsh-whale-petREADME
dsh-whale-pet
A whale-girl desktop pet plugin for the DeepSeek Harness Web UI.
| Idle | Hover wave | Working | Complete |
|---|---|---|---|
![]() | ![]() | ![]() | ![]() |
Highlights
- Mirrors five Harness states: idle, working, needs input, complete, and blocked.
- Hugs a DeepSeek-whale-inspired pillow while idle, falls asleep after 40 seconds, startles awake, and plays one friendly three-pose wave when hovered or focused.
- Shows privacy-safe activity summaries from Harness presentation metadata in bubbles that choose an on-screen position around the pet without covering the character.
- Supports dragging, keyboard movement, position reset, collapse/restore, reduced motion, English, and Simplified Chinese.
- Uses the official
shell.overlayslot without patching Harness or scraping UI text.
Install
Requires Node.js 22.19+ or 24+ and DeepSeek Harness 0.1.0-rc.6.
dsh plugin --profile web add dsh-whale-pet@0.1.0
dsh --profile web --dump-config
dsh --profile web
The dump should contain exactly one dsh-whale-pet entry. The pet appears at the bottom-right of the Web UI.
To uninstall:
dsh plugin --profile web remove dsh-whale-pet
dsh --profile web --dump-config
State mapping
| Priority | Session condition | Pet state |
|---|---|---|
| 1 | Removed | Blocked |
| 2 | Approval, plan review, or question pending | Needs input |
| 3 | Running | Working |
| 4 | Explicit open, agent, or prompt error | Blocked |
| 5 | A running session stops successfully | Complete for 1600 ms |
| 6 | No session, cold/loading, or settled | Idle |
Development
pnpm install --frozen-lockfile
pnpm check
pnpm test:visual
npm pack
node scripts/smoke-harness.mjs --package ./dsh-whale-pet-*.tgz
Idle assets, frame order, and interaction timing have one source of truth in src/client/idle-animation.json. pnpm assets:check enforces the 700,000-byte runtime WebP budget; the current set uses 679,044 bytes, so review asset size before adding more artwork.
See CONTRIBUTING.md for artwork and verification rules.
Privacy and licenses
The plugin reads only current-session status and provider-declared presentation metadata. It does not read tool arguments, prompts, model reasoning, or conversation text, and it makes no analytics requests. Preferences stay in browser-local storage.
Code is licensed under MIT. Artwork is licensed under CC BY 4.0; provenance and hashes are recorded in ASSET_ATTRIBUTION.md.



