Preface

DeepSeek Harness (dsh) treats model adaptation, tools, sessions, sandboxes, and interfaces as replaceable plugins, with the official repository’s slogan being “Everything is a Plugin”. When using it to run agents daily, what people often overlook is not capability, but state: the session is already running, stuck waiting for approval, just finished and waiting for you to check the results, but you have switched to a browser, IDE, or document. The in-page desktop pet only works when you open the DSH webpage; once the window is covered, the state disappears from your view.

There is a fun plugin named dsh-pet in the community plugin directory, maintained by FlytoMAYDAY80. It is not an animation in the bottom-right corner of the webpage, but an independent desktop small whale: even without opening the DSH page, it can tell you which state the current session is in — requires confirmation / working / completed / idle / offline — using expressions, speech bubbles, and sound effects. This article is written after cross-verifying information from the plugin directory page, GitHub repository README, 产品说明.md, CHANGELOG.md, and package.json. The community plugin directory is an independent website and has no official affiliation with DeepSeek / HuanFang, so do not treat it as an official app store.

The current public source repository is FlytoMAYDAY80/dsh-pet, licensed under MIT, with the primary language being JavaScript. At the time of writing, both the directory page and GitHub show 13 stars; the latest release tag is v0.1.1 (2026-08-17). The repository states: This tool is an independent third-party desktop companion and has no official connection with DeepSeek / DeepSeek AI; the whale image and the name “DeepSeek” are used to refer to the official products being connected, and the copyright belongs to their respective owners.

What is This

The product name of dsh-pet is DSH Desktop Pet. According to its positioning in the README, it is a DeepSeek small whale floating on your desktop: when you work in other software, it always stays in a corner of the screen, turning “task status” from a page that needs to be actively opened into a real-time signal that can be seen out of the corner of your eye.

The repository notes that it was open-sourced alongside the release of DeepSeek Harness, originally hosted in the dsh-external organization repository, and now uses a personal account repository as the public source. In terms of form, it is an independent Electron desktop application that reads the local DSH GUI through read-only HTTP / WebSocket interfaces, without writing session data or modifying DSH configurations. The version number in package.json is 0.1.1, the productName is DSH Desktop Pet, and the build targets are dmg and zip for macOS.

The problem it solves is very specific: after you leave the DSH page, approvals, questions, and task completion notifications are most likely to be overlooked. The desktop pet brings these states to the desktop layer, and uses exclusive sound effects to remind you of “requires confirmation” and “task completed”.

Core Features

The README summarizes the capabilities into the following points, which can be mutually verified by the product description and Changelog.

1. Off-screen state awareness. Independent topmost floating window, visible across full-screen applications. Even without opening the DSH webpage, you can see whether the session is running, waiting for you, or just finished.

2. Five states, presented by urgency. The user-visible priority given in the README is: requires confirmation > working > completed pending review > idle > offline. The corresponding behaviors are as follows:

State Whale Behavior Meaning
Requires Confirmation Staring + eyebrows + O-shaped mouth + prompt sound There are approvals or questions waiting for you to handle
Working Focused eyes + water spray animation A session is currently running
Completed Pending Review Happy squinting eyes + stars Task just completed, go check the results
Idle Sleeping + zzz No tasks in progress
Offline Grayscale + X eyes Failed to connect to DSH, will automatically retry

The product description adds trigger conditions: enter “requires confirmation” when any session has a permission approval (approval/requested) or a question (question/requested); enter “working” when any session is running; after a session changes from running to idle, there is a 120-second window to display “completed pending review”; display offline when the DSH GUI is unreachable. When multiple sessions run in parallel, the speech bubble lists the titles session by session, and you can scroll inside the bubble if there are too many.

3. Dual-channel real-time push, polling as fallback. Starting from v0.1.1, the state engine uses:
- Poll POST /api/session.list every 2 seconds to get the session title, running and todos baseline;
- WebSocket /api/events.mux to receive approval / question / queue push, automatically reconnect when disconnected;
- WebSocket /api/events.host to receive real-time push of running status flip.

The Changelog clearly states: Starting from DeepSeek Harness 0.1.0-rc.6, these two event channels only accept WebSocket upgrades, and ordinary GET requests will return 426. v0.1.0 still uses the old SSE client, and cannot receive approvals / questions under rc.6, so the desktop pet will stay offline. To use the current version of DSH, you should install v0.1.1.

4. Low disturbance, only makes sound when the state changes. Polling and refreshing under the same state remains silent. “Requires confirmation” and “task completed” each have exclusive sound effects; if a new approval or question comes while already in “requires confirmation”, v0.1.1 will ring again.

5. Zero intrusion to DSH. Read-only local interface, does not write any data. Uninstall the desktop pet and the process will disappear immediately. The README clearly states: The desktop pet will not transmit data to the cloud.

6. No-code customization. Put files into the custom/ directory, and the built-in materials will be overwritten after restart: sprites.json to modify pixel patterns and color schemes, attention.m4a / done.m4a to modify the two prompt sounds. You can also use the built-in script in the repository to generate patterns from reference images.

Installation and Activation

The installation command given on the directory page is as follows, run it in the DeepSeek Harness terminal:

dsh plugin add github:FlytoMAYDAY80/dsh-pet

For reproducible installation, the directory page recommends fixing the commit hash:

dsh plugin add github:FlytoMAYDAY80/dsh-pet#commit

Replace commit with the actual hash value. The directory page also reminds: the plugin runs with the permissions of the current dsh process, and may execute code during installation; you should check the source code repository and license before installing.

It is necessary to clarify the form. The repository root directory is an Electron application (main.js, preload.js, package.json) without the typical Harness apply(ctx) plugin entry. The product description clearly states: the desktop pet communicates with DSH through HTTP/WebSocket read-only interfaces, does not depend on the DSH plugin system, and is distributed as an independent desktop companion. To make the small whale appear on the desktop, you should use the installation package recommended by the repository README, or start from the source code, instead of just relying on the directory inclusion command above.

Method 1: Download the installation package (recommended by README)

Download the current v0.1.1 build from GitHub Releases. The latest resources at the time of writing are:

Platform Installation Package Description
macOS Apple Silicon dsh-pet-0.1.1-arm64.dmg Double-click to open, drag the whale into Applications
macOS Apple Silicon dsh-pet-0.1.1-arm64-mac.zip Portable version, unzip and use; delete the folder to uninstall

The product description states “Platform: macOS (currently verified)”. Transparent windows, tray icons, and sound effects for Windows / Linux are still listed as to-be-adapted, so do not assume they are available by default.

Method 2: Run from source code

Requires Node.js 18+ and pnpm:

pnpm install   # Install dependencies (Electron)
pnpm start     # Start the desktop pet (default bottom-right corner)

Optional environment variables can specify the DSH GUI address, the default is the local port 3080:

DSH_PET_URL=http://127.0.0.1:3080 pnpm start

Confirm that the DSH GUI is running at this address before starting. If the desktop pet fails to connect, it will enter the offline state (grayscale X eyes) and automatically retry.

Typical Usage

After starting, the whale will stay in the bottom-right corner of the screen by default. You can read the expressions corresponding to the five states; the speech bubble will specify which sessions and what operations are needed.

The interactions given in the README are as follows:

Operation Behavior
Click the whale or speech bubble Open the DSH GUI (system browser; you can also change it to the desktop pet window and go directly to the session)
Hold and drag Move the position
Right-click the whale / speech bubble or tray icon Menu: toggle speech bubbles, toggle sound effects, adjust size, open method
Scroll (inside the bubble) Scroll to view the multi-session list

The size range specified in the product description is 50%–110%, with the default being 67%. Sound effects can be toggled in the right-click menu; if you cannot hear the prompt sound, first turn on “Sound Effects”, then confirm the system volume.

When you see “requires confirmation”, return to the GUI to handle approvals or questions; when you hear the completion sound or see the completion expression, go back to check the results; if the whale is sleeping, it means there are no current tasks.

If you want to change the image or sound effects, put the files into custom/ and restart:

custom/
├── sprites.json      ← Pixel pattern + color scheme
├── attention.m4a     ← "Requires confirmation" sound effect
└── done.m4a          ← "Task completed" sound effect

When only changing the color scheme, just write palette in sprites.json, for example, replace the main body color "b" with your own theme color. Generate patterns from reference images:

python3 scripts/ref_to_sprites.py <your reference image.png>

The script requires Python 3 and PIL. For detailed fields, see the repository’s custom/README.md. Delete the unwanted files under custom/ and it will revert to the built-in materials.

The development self-check commands are also in the README:

pnpm smoke        # State engine smoke test
pnpm shot         # Screenshots of two skins × 5 states

Applicable Scenarios and Notes

It is suitable for people who are already running the DeepSeek Harness GUI locally and often switch to other software to work: when coding, writing documents, or browsing the web, use the corner of your eye to confirm whether the agent is stuck or has finished the task. It is also suitable for people who open multiple sessions at the same time and need to glance at the session titles in the speech bubble. It is categorized as “fun” in the community directory, but the status channel and sound effects are based on real session events, not just decorative animations.

Pay attention to the following points before use:

  1. Upgrade to v0.1.1 first. The Changelog notes that the v0.1.0 installation package is based on the old SSE protocol and cannot receive approval / question events under DSH 0.1.0-rc.6.
  2. Currently verified platform is macOS. The official installation package only provides dmg / zip for Apple Silicon. Running from source code still depends on Electron; the product description lists cross-platform adaptation and the installation volume of about 100MB+ as to-be-optimized items.
  3. The desktop pet reads the local DSH interface only. It connects to http://127.0.0.1:3080 by default. It does not handle approvals themselves: clicking currently only opens the GUI, and there are no “allow / deny” buttons inside the speech bubble yet. The product description lists “direct processing inside the speech bubble” as a follow-up item.
  4. Permissions and source. The general security prompt on the directory page still applies: the installation command may execute code, and the plugin runs with the permissions of the current dsh process. The standalone installation package is another Electron process that reads the local DSH’s HTTP/WebSocket. You should check the source code repository and the MIT license before installing.
  5. Do not mix up plugins with the same name. There are other projects named dsh-pet in the community directory (such as in-page desktop pets). This article corresponds to the independent desktop application maintained by FlytoMAYDAY80, with the directory page slug dsh-pet-flytomayday80.

Summary

dsh-pet brings the session status of DeepSeek Harness from the webpage to the desktop: the small whale uses five expressions and two sound effects to cover approval, running, completed, idle, and offline states. It is maintained by FlytoMAYDAY80, open-source under MIT, the current recommended version is v0.1.1, targeting the locally started DSH GUI, and the installation package has been verified for macOS Apple Silicon.

Directory page: https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-pet-flytomayday80/

GitHub: https://github.com/FlytoMAYDAY80/dsh-pet