DeepSeek Harness plugin

dsh-whale-pet-er1c0v0

An unofficial whale-girl desktop pet for the DeepSeek Harness Web UI.

Jump to install

Source facts

Repository
Er1c0v0/dsh-whale-pet
Latest update
Aug 18, 2026
Category
Just for Fun
GitHub stars
4
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/Er1c0v0/dsh-whale-pet
Plugin: dsh-whale-pet-er1c0v0
Author: Er1c0v0

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer4 files
README.mdSource · read only
README language

dsh-whale-pet

简体中文

A whale-girl desktop pet plugin for the DeepSeek Harness Web UI.

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.overlay slot 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

PrioritySession conditionPet state
1RemovedBlocked
2Approval, plan review, or question pendingNeeds input
3RunningWorking
4Explicit open, agent, or prompt errorBlocked
5A running session stops successfullyComplete for 1600 ms
6No session, cold/loading, or settledIdle

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](./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](./LICENSE). Artwork is licensed under [CC BY 4.0](./LICENSES/CC-BY-4.0.txt); provenance and hashes are recorded in [ASSET_ATTRIBUTION.md](./ASSET_ATTRIBUTION.md).