Preface¶
DeepSeek Harness (dsh) treats models, tools, skills, sessions, interfaces, etc. as plugins. The official repository’s slogan is “Everything is a plugin”. The web interface itself is also part of this workflow: after starting dsh web, what can be added to the interface largely depends on which bundles are installed in the current profile.
Desktop pets just fit right into this interface. There are already many similar projects in the community: some switch actions according to the Agent’s thinking/working/completion status, and some even come with pomodoro timers and alarm clocks. The dsh-pet maintained by PC2005-cloud takes a different approach: it does not read task status, call models, or add business functions during runtime. It only places a pet that can breathe, move, be clicked and dragged on the web interface. The repository also publishes the entire material pipeline from “prompt → green screen video → transparent animation → installable plugin”, so users who do not want to use the default image can create their own following the same process.
This article is cross-checked based on the community directory page, GitHub repository (including README.md, DESIGN.md, and the plugin package package.json), as well as dsh-pet@0.1.4 on npm. The community plugin directory deepseek-harness-plugin.com is an independent site and has no affiliation with DeepSeek or FangTian. You should still return to the source code repository to check by yourself before installing.
What is this¶
dsh-pet is a fun plugin for the DeepSeek Harness web interface, maintained by PC2005-cloud. The code license is MIT (Copyright 2026 PC2005-cloud). The current version of the plugin package is 0.1.4, which has been published to npm under the package name dsh-pet. The GitHub repository page shows 62 stars (the community directory page shows 61 at the same time, please refer to the repository page). The category in the directory is “Fun”, with an inclusion date of 2026-08-15, and the last push was on 2026-08-16.
It solves two specific things:
- Ready to use: Attach an animated pet with a transparent background to the floating layer of
dsh web, which appears in the bottom right corner by default. - Reproducible self-made workflow: The repository is not just a finished plugin, but a three-piece set of prompts, Python material pipelines, and plugin packages. After cloning, you can change the character, actions, and style, then repackage the generated webm back into the plugin.
The GitHub profile on the repository root and the community directory page still say “28 transparent animations”. The current repository documents (root README.md, DESIGN.md, plugin package README) and the files in the dsh-pet/assets/thumb/ directory actually have 51 .webm files. The following content is based on the actual resources and documents in the repository.
Core Features¶
The plugin’s own README clearly states its positioning: it does not include weather, system monitoring, or Agent status awareness, and does not call LLMs or external APIs during runtime. It is registered to DSH’s official shell.overlay slot, which belongs to the full-app floating layer and does not modify the Harness kernel.
The capabilities explicitly stated in the README / DESIGN.md and matching the source code description are as follows.
Animation chain instead of a permanent idle loop. Each animation (including idle breathing) plays until the end, then the next segment is selected by probability: 30% idle, 10% turn, 40% action, 20% move. The corresponding implementation in DESIGN.md is pickNext(): Math.random() falls into four intervals <0.3, <0.4, <0.8, and >=0.8; if there is not enough screen space to move, the move action will fallback to a regular action. The animations connect end to end with no “idle loop gap”.
51 transparent animations. The types listed in the plugin package README include: idle breathing, dozing off, solving Rubik’s cube, humming, fluffing up, blowing bubbles, playing water gun, violin, blue whale appearance, eating rice, looking in mirror, dancing, coding, as well as seasonal actions like flying a kite, building a snowman, eating ice cream, etc. You can verify all 51 640×360 webm files for playback in the dsh-pet/assets/thumb/ directory of the repository, such as 待机呼吸休闲.webm (idle breathing and relaxing), 打瞌睡被惊醒.webm (dozing and waking up), 螃蟹走路.webm (crab walking), as well as three click responses and one drag feedback.
Direction, landing, and roaming. The materials are made for symmetric characters, and are mirrored using CSS scaleX(-1) when facing right. All animations share a unified foot line (the design document specifies y=330 on the 360 canvas), so the pet looks like it is standing on the interface “ground” instead of floating in mid-air. The movement animation only provides the walking posture, and the displacement is driven by the code based on video.currentTime: there is no displacement during the 2 seconds of preparation/ending before and after, and the movement is completed within the middle 6 seconds; the screen space will be checked before moving to avoid walking out of the visible area.
Click and drag. Clicking will randomly play a response (the plugin README mentions three types: happy, shy, and arrogant); dragging over about 5 pixels will be recognized as a drag action, and the pet will stop at the released position. Double-buffering two <video> elements with cross-fade transitions is used for switching, which the design document emphasizes eliminates blank frames during action changes. The plugin README also states that it supports prefers-reduced-motion.
Most configurations use code defaults. The plugin README lists size (default stage width 462px, height about 260px), position (bottom right corner by default), fullRoot (default $DSH_HOME/pet-assets, used for higher-resolution master files). Among them, size / position are marked as “not yet sent to the browser” because of DSH client configuration pipeline restrictions: changing these items after installation will not take effect, and you can only modify the default values in the source code. Master resources need to be downloaded separately and are not included out of the box.
Three-piece Set: From Prompt to Plugin¶
The root README breaks down the project into three parts:
① Prompt (recipe) → ② Material generation pipeline (engine) → ③ Plugin (finished product)
AI animation recipe Source video → transparent animation pipeline Pet running in DSH
The corresponding directories are prompts/, scripts/ + video/, and dsh-pet/. If you just want to use the ready-made pet, you don’t need to touch the first two steps; only when you want to change the character or add actions do you need to go through the full pipeline.
1. Generate green screen video from prompt¶
The prompts are in prompts/桌面宠物 10 秒动作提示词.md (Desktop Pet 10-second Action Prompt.md). The README requires using AI video tools to generate 51 10-second green screen videos (the project’s own materials were generated by Doubao, and the documentation also mentions similar tools like Keling and Runway):
- Aspect ratio 16:9, background is pure green screen #00FF00
- Character position is fixed: the top of the head is about 20% of the screen height, and the soles of the feet are about 85% of the screen height
- The entire action stays within the frame, and the first and last frames are standard front-facing standing poses
- Write the action breakdown per second
The source mp4 files are not committed to git to control the repository size. If you need to reproduce them, download them from the assets-videos tag on GitHub Releases and place them in video/:
mkdir -p video && cd video && gh release download assets-videos --repo PC2005-cloud/dsh-pet
2. Convert green screen video to transparent animation¶
The material pipeline is in scripts/, run the four steps in order according to the README (the design document notes that the entire pipeline has 7 Python scripts in total, of which make_mask_black.py and fill_nn.py are called by the first step):
cd scripts
python watermark_step01.py # Watermark mask filling → step01/
python chroma_step02.py # Green screen keying to transparent (HSV hue) → step02/
python normalize_step03.py # Normalize to 2160×1215 for unified standing and centering → step03/
python encode_thumbs.py # Transcode to 640×360 playback version → step04/
Dependencies are Python 3, ffmpeg, numpy, scipy. The README specifies that the material pipeline will use ffmpeg from the .tools/ directory in the workspace. DESIGN.md records several practical pitfalls: the VP9 transparency channel must have libvpx-vp9 appear before -i, otherwise the alpha channel will be lost and replaced with a black background; the final keying uses HSV hue (green hue about 70°–170°, and only key out pixels that meet saturation and brightness thresholds) instead of a simple chromakey; horizontal centering uses the x median of non-transparent pixels to avoid skewing the bounding box center caused by hands or props.
The intermediate directories step01–step04 are not committed to the repository, only the 640×360 playback versions are synced into the plugin package.
3. Sync to plugin and install locally¶
cp step04/*.webm dsh-pet/assets/thumb/
dsh plugin --profile web add file:/path/to/dsh-pet
The README example uses the Windows path file:D:/path/to/dsh-pet, just replace it with your local repository path. Note that what you are adding here is the dsh-pet/ subdirectory (the actual npm package) in the repository, not the repository root. package.json declares dsh.bundle (the patch file cordis.patch.yml) and dsh.client.platform: web, so it is only for the web profile.
Installation and Activation¶
The installation command given on the community directory page is:
dsh plugin add github:PC2005-cloud/dsh-pet
The directory page also reminds you that for a reproducible installation, you should fix the commit hash:
dsh plugin add github:PC2005-cloud/dsh-pet#<commit>
Replace <commit> with a specific commit in the repository. The plugin runs with the permissions of the current dsh process, and may execute code during installation. You should check the source code and license before installing.
The plugin’s own README / npm page uses the web profile and directly uses the package name (0.1.4 is already available on npm):
dsh plugin --profile web add dsh-pet
After installation, you need to restart dsh web, and the pet should appear in the bottom right corner of the interface. The uninstall command is:
dsh plugin --profile web remove dsh-pet
Do not mix up the two installation methods: github:PC2005-cloud/dsh-pet from the directory page pulls the entire repository from GitHub; dsh-pet from the README uses the npm package. If the Git installation triggers pnpm’s prepare/prepack scripts, you may also need to add the package key to the allowBuilds field of that profile’s pnpm-workspace.yaml according to the DSH official documentation for pnpm 10 and above. The official instructions are available at Package and Publish Plugins.
What It Looks Like in Use¶
After installing and restarting the web interface, you do not need to configure any models or run the material pipeline again. The pet switches animations on its own according to the animation chain; clicking will play a response, and you can drag it to another position by holding down the mouse. The left/right direction is flipped by the turning animation’s facing value, and all actions can be mirrored.
If you just want to “take a quick look at the effect”, the shortest path is: use the above installation command → restart dsh web → refresh the page. The GIF preview in the repository README is in dsh-pet/assets/preview/; the transparent parts will show the page background color in the GIF, and the actual transparency will only work when playing the webm files.
To change to your own custom character, follow the three-step process in the previous section: generate green screen videos from prompts → run the scripts/ pipeline → overwrite assets/thumb/ → reinstall using the file: path. The design document mentions that pnpm copies rather than symlinks file: dependencies, so after modifying the source code or materials, you need to remove and then add again, otherwise the old copy will still be in the profile.
Applicable Scenarios and Notes¶
It is suitable for people who are already using dsh web and just want to place a purely ornamental pet on the interface; it is also suitable for people who want to use the same pipeline to make custom desktop pets but do not want to write overlay and keying scripts from scratch. It is not an Agent status indicator: the pet will not change when a task starts, waits for input, or encounters an error. There are other community projects with similar features but different positioning, such as keleus/deepseek-pet and minybear/DeepSeek-Harness-Pet. Do not confuse the package names and installation commands with this repository.
Before using it, you need to accept these limitations:
- Only supports web. dsh.client.platform in package.json is web, and installing it on CLI/TUI will not show this pet in the terminal.
- Permissions and supply chain. The plugin runs with the permissions of the current dsh process. The security prompts on the directory page and source code checks still apply; pinning a commit is more reproducible than tracking main.
- Material license is not separately fixed. The code is MIT; the root README says “Materials (animations/prompts): see repository instructions”, and the DESIGN.md still marks the material agreement as “TBD”. Before redistributing animations and prompts, you should check the repository’s instructions at that time, and do not assume that you can redistribute the materials freely under the MIT license.
- Size and dependencies. Playback resources are bundled into the npm package; full green screen source videos are on Releases, and the self-made pipeline also requires local Python, ffmpeg, numpy, and scipy.
- Directory page numbers may be outdated. The number of animations shall prevail based on the assets/thumb/ directory in the repository; the star count shall prevail based on the GitHub repository page.
Summary¶
dsh-pet does a very narrow thing: placing a desktop pet that does not connect to business logic or consume model tokens on the DeepSeek Harness web interface, and open-sourced the entire pipeline from “AI video → transparent webm → plugin” along with it. The ready-made pet can be installed with one command from the directory page or npm; to make your own custom pet, just follow the prompts and four-step scripts in the repository.
Directory page: https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-pet/
GitHub: https://github.com/PC2005-cloud/dsh-pet