DSH plugin whale pet widget: DeepSeek Harness setup
The DSH plugin whale pet widget is the community 3D desktop pet dsh-whale-pet: it lives in the DeepSeek Harness interface, swims around, reacts to session state and can chat with you (source). It is a different plugin from the balance whale widget — one is a pet, the other a data panel — so do not treat them as one thing. To find similar widgets, search the market on DSH Plugin Hub by whale and pet keywords.
What the DSH plugin whale pet widget is, and how it differs from the balance widget
The whale pet widget is the "pet" kind of interface component: the point is company and reactions to session state, not displaying balance data (source). What it does:
- Resident and swimming. It stays near the edge of the viewport, patrols at random over time, looks toward the pointer and pops hearts when hovered.
- Live reactions. It switches expressions with session state — thinking, working, focused, celebrating, erroring, sleepy, waiting for your approval — and circles in celebration when a long task finishes.
- Interactive. It can be dragged, snapped to a corner, renamed by right-click, resized (50%–150%) and hidden, with a shortcut to show or hide it.
- Chatty. The right-click "chat with the whale" entry talks to a large model and remembers a small amount of long-term information about you.
The difference from the balance widget is plain: the balance whale widget is a data panel showing DeepSeek account balance and usage; the whale pet widget is a desktop pet centred on interaction and mood — they are not the same plugin.
What it does: states, expressions and interactions at a glance
Everything the pet shows is a reaction to session state, so reading it as a status indicator is often more useful than reading it as decoration (source).
| Trigger | What the pet does |
|---|---|
| the session is idle for a while | sleepy expression |
| the model is thinking | thinking expression |
| a turn is running | working expression |
| a long task is in focus | focused expression |
| a long task finishes | celebrating, circling around |
| something errors | erroring expression |
| an approval is pending | waiting for your approval |
| you hover the pet | looks toward the pointer, pops hearts |
Two practical consequences: a glance at the pet tells you whether a turn is still running, and an "erroring" face usually means a failed turn is waiting — not that the pet itself is broken.
Where the chat key comes from: three levels of priority
Chat is the only part that needs a key, and it resolves one from three places in order (source).
| Priority | Source | Notes |
|---|---|---|
| 1 | the plugin's own config | set it in the widget's settings |
| 2 | DSH_WHALE_API_KEY | environment variable the chat agent reads |
| 3 | DEEPSEEK_API_KEY in DeepSeek Harness credentials | fallback when the first two are absent |
If none of the three is present, chat reports not configured and the pet shows an error face for an unavailable agent. The fix is to supply any one of the three and restart — you do not need all of them.
Install and enable the DSH plugin: from downloading the repo to restarting the Web UI
The whale pet widget does not use the usual dsh plugin add; it uses the repo's own installer, node install-profile.mjs web (source). Four steps in order:
- Download the repo. Grab it with a GitHub ZIP or
git clone; this step needs Node.js 22+ locally. Expected: the repo directory is on disk andnode -vshows 22 or higher. - Run the installer. From the repo directory run
node install-profile.mjs web. It copies the package to$DSH_HOME/profiles/web/plugins/ui-whale-pet, adds it to the profile manifest andnode_modules, and appends theui-whale-petCordis line to that profile'scordis.patch.yml. The script applies to Node-based CLI and Web profiles only. Expected:ui-whale-petappears under$DSH_HOME/profiles/web/plugins/, with matching entries in the profile manifest andcordis.patch.yml. - Configure the chat key. To let the whale chat, give its agent an API key, otherwise chat reports not configured; it reads the plugin config,
DSH_WHALE_API_KEY, or falls back toDEEPSEEK_API_KEYin the DeepSeek Harness credentials. Expected: chat stops reporting not configured once the key is set. - Restart and hard-refresh. Restart
dsh web, then hard-refresh the browser and the pet appears.
One note: the official desktop client reads its reserved desktop profile and cannot use this script or a normal CLI install — install the packaged bundle from its Plugins page instead.
Whale pet widget vs balance whale widget: five dimensions
The two get confused because both are whales in the corner; on every dimension that matters they are opposites (source).
| Dimension | Whale pet widget | Balance whale widget |
|---|---|---|
| Purpose | company and mood | balance and usage data |
| Install route | the repo's installer script | dsh plugin add |
| What it shows | expressions and reactions | account balance, today's spend, per-turn cost |
| Needs a key? | only for chat | reads the DeepSeek Harness credential or login state |
| Placement | lower-right, draggable | corner of the interface |
If you only want one, decide by the purpose row first — everything else follows from it.
DSH plugin common issues: not loading, coexisting with the balance widget, switching widgets
The whale pet's common issues fall into two groups: "it never made it into the profile" and "it is fighting another widget for the corner".
- Not loading. First confirm the installer really succeeded and
ui-whale-petappears in the profile manifest; then restartdsh weband hard-refresh the browser to rule out a stale cache. - Installed alongside the balance widget. They are independent plugins and generally coexist, but both take the lower-right corner and can crowd each other; hide or uninstall one if you want only one.
- Switching to another similar widget. Pets and data panels are two different lines — decide whether you want company or data, then pick by keyword on DSH Plugin Hub instead of installing the two as if they were one.
Verifying the DSH plugin whale pet widget after install
The script touches three places; the fastest check is to confirm all three, rather than only looking at the browser.
# 1) Did the installer copy the package into the profile?
ls "$DSH_HOME/profiles/web/plugins/ui-whale-pet"
# the package directory should exist
# 2) Was the Cordis line appended to that profile?
grep -n "ui-whale-pet" "$DSH_HOME/profiles/web/cordis.patch.yml"
# a matching line should be present
Expected: the package directory exists and the Cordis line is present. If the directory is missing, the installer never ran against the profile you are using; if the line is missing, the profile will not load the pet even though the files are there — restore the line and restart.
Notes on the DSH plugin whale pet widget
Remember two things — it is a pet, not a balance panel, and it installs by script, not by plugin add — and that is enough.
- Do not confuse the plugins: whale pet (pet) and balance whale (data) are different.
- Use the right install route:
node install-profile.mjs web, not the usualdsh plugin add. - Have the Node version ready: the installer requires Node.js 22+.
- Chat needs a key: without one it reports not configured; add it and restart.
- Desktop takes another route: the
desktopprofile is reserved, so install the bundle from its Plugins page. - Hard-refresh after installing: restart
dsh web, then hard-refresh the browser. - The balance widget is in balance whale widget install, and similar plugins are on DSH Plugin Hub.
Common misconceptions about the DSH plugin whale pet widget
Five assumptions that lead to the wrong fix:
- "It installs with
dsh plugin addlike everything else." No — it uses the repo's owninstall-profile.mjsscript. - "It needs the same API key as the balance widget." No — only chat needs a key; the balance widget reads a credential or the login state.
- "A pet that shows an error face is broken." Usually not — the face is mirroring a failed turn or an unconfigured chat agent.
- "After installing, a normal refresh is enough." Not reliably — restart
dsh weband hard-refresh to clear a cached bundle. - "The desktop client can run the same script." No — the
desktopprofile is reserved; use its Plugins page instead.
Source: Community plugin repo - dsh-whale-pet, DeepSeek Harness CLI README.
FAQ
The DSH plugin whale pet widget is a 3D desktop pet, and it is a different plugin from the balance widget: the pet is for company and mood, the balance widget is for balance data. The pet swims in the interface, reacts to session state and can chat with you; the balance widget just shows account balance and usage.
The DSH plugin whale pet widget is enabled by the repo's own script rather than plugin add: download the repo, then run node install-profile.mjs web, which copies the package, writes the profile manifest and takes effect after a restart. That step needs Node.js 22+ locally, and you also configure a chat API key, restart dsh web, then hard-refresh the browser.
The DSH plugin whale pet widget and the balance widget are independent plugins and normally both show up without overwriting each other. Both occupy the lower-right corner though, so they can crowd each other visually; to keep only one, hide or uninstall the other with its own switch.
A DSH plugin whale pet widget that does not load should be checked by confirming the script actually wrote into the profile first, then hard-refreshing the browser. The usual causes are an install script that failed to append its config, or a browser still serving a cached bundle; once install-profile.mjs web succeeded and dsh web was restarted, a hard refresh normally shows the pet.
A not-configured chat error on the DSH plugin whale pet widget means its chat agent has no API key, so add one and restart. It can read the plugin config, DSH_WHALE_API_KEY, or fall back to DEEPSEEK_API_KEY from the DSH credentials; with none of the three it shows an error face for an unavailable agent.
Related Terms
- dsh-whale-pet
- dsh-whale-pet is the community repository name of this 3D whale desktop pet, registered as the package @deepseek-ai/dsh-client-ui-whale-pet and resident as an overlay of the Web UI.— Community plugin repo - dsh-whale-pet
- install-profile.mjs
- install-profile.mjs is the repo's own installer: running node install-profile.mjs web copies the plugin into the profile, writes the manifest and appends the Cordis line; it applies to Node-based CLI and Web profiles only.— Community plugin repo - dsh-whale-pet
- shell.overlay
- shell.overlay is the DeepSeek Harness interface slot for resident overlay components; the whale pet registers a whale-pet entry there to display itself.— Community plugin repo - dsh-whale-pet
- DSH_WHALE_API_KEY
- DSH_WHALE_API_KEY is the key environment variable the whale pet's chat agent can use, falling back to DEEPSEEK_API_KEY in the DSH credentials when absent.— Community plugin repo - dsh-whale-pet
Sources
- Community plugin repo - dsh-whale-pet· community
- DSH CLI README (profiles and plugin install)· deepseek-ai