Preface¶
DeepSeek Harness (hereinafter referred to as dsh) treats models, tools, sessions and UI as plugins, which the official describes as “everything is a plugin”. After the developer preview went live, the web interface became the main entry point for many people to run agents: left side for chat, middle for traces, right side for tool calls. When there are multiple tasks, all the statuses are crammed into text and progress bars.
A category of “fun” plugins quickly emerged in the community: they do not add new tools to the model, but only overlay a desktop pet on the web page, so that current tasks, thinking and errors can be expressed through emojis. deepseek-pet follows this path, and its character is not an ordinary cat or dog, but DeepSeek’s gluttonous blue whale.
First, it needs to be clarified: the installation portal introduced in this article comes from the community plugin directory deepseek-harness-plugin.com, which is an independent website and has no official affiliation with DeepSeek / Fang Tian. It cannot be regarded as an official app store. The plugin itself is maintained by GitHub user keleus, with the repository address keleus/deepseek-pet, licensed under MIT, and the current package version is 0.1.0. As of 2026-08-17, GitHub shows 28 stars; the community directory page still showed 11 stars at that time, so please refer to the repository page for star counts.
What is this¶
deepseek-pet is an interactive desktop pet plugin embedded in the web interface of DeepSeek Harness. The one-sentence description on the directory page is: “Raise a gluttonous blue whale on your deepseek-harness.”
It does not modify the dsh core, nor does it register new tools for the model. package.json declares dsh.client.platform as web, injects @deepseek-ai/dsh-client-runtime and @deepseek-ai/dsh-client-ui-layout on the client side, and the registry registers the character to the shell.overlay slot of the web page. The host side has almost empty implementation, and all visible behaviors are completed in the browser.
The problem it solves is very specific: when the agent is analyzing, calling tools, waiting for your approval, writing responses, failing or being idle, there is a lack of a visual anchor on the web page that does not block operations and changes with the status. This blue whale will read the current session snapshot and switch expressions and short phrases; the animations include breathing, bouncing, tilting, parallax and fading in, which the README describes as “Live2D style”. In reality, it is not a Live2D model with split layers, but switches the entire expression image and adds movements to the whole image, to avoid misalignment of head, hands and feet and abrupt expression changes.
Core Features¶
The capabilities that match between the repository README and the client source code (src/client/pet-state.js, pet-presentation.js) can be divided into the following groups.
- Status follows the task. The character will change expressions based on the current task, tool calls, context usage and active sessions. There are corresponding images for analysis, response, coding, web search, sub-Agent, completion and failure; during the response phase, it will rotate between typing, thinking and checking, and different status tags will be switched during the thinking phase. In the source code, tool names will also be mapped to short phrases, for example,
bash/exec_commanddisplays “Typing in terminal”, andweb_searchdisplays “Searching for information”. - Bubbles and session bar. There is a bubble above the character with the same width as the pet, which rotates status short phrases and follows the latest output with a single-line horizontal typewriter effect; when there is no task activity, it will automatically hide after about 10 seconds. Below the character, a horizontal bar displays focused sessions, with a bright border marking the current item; executing sessions are arranged downward, and more than three will be stacked and collapsed. When multiple sessions run in parallel, it enters the “swamped” state mentioned in the README.
- Approval and questions can be triggered via the pet. When the tool is waiting for approval, you can directly allow or deny it in the bubble. User questions support options, custom input, submission and rejection. Clicking an active session will switch that session to the focused session. These interactions use the web overlay and do not open a new window.
- Context and idle states also have expressions. When the context usage reaches 62%, it prompts “You can eat a little more”, and when it reaches 82%, it displays “Full”. The source code uses the conditions
contextRatio >= 0.62/0.82. When there is an image input, it switches to the blindfolded state. When there is no task for about 10 minutes, it shows hunger; after 30 minutes, it dozes off with a pillow; after 1 hour, it sleeps. It will also send greetings in the morning, noon, afternoon and evening according to local time, becomes sleepy after 23:00, and goes to sleep in the early morning. When there are many questions in the reasoning, it displays confusion or stress; when the user points out that the response is wrong, it shows an apology. - Adjustable position and size. Supports dragging, single-click interaction and double-click folding; when the mouse hovers over the character, a “-” minimize button will appear under its feet, and clicking it or double-clicking will minimize it to an icon in the bottom right corner. Scroll the wheel while hovering to zoom, with a range of about 65% to 140%. The position and size will be remembered. Narrow screens and
prefers-reduced-motionare also handled.
Installation and Activation¶
The installation command given on the community directory page is:
dsh plugin add github:keleus/deepseek-pet
This is the original text from the directory page. This plugin only works on the web interface, and the maintainer’s README requires installing it to the web profile. When you have dsh installed globally, it is recommended to follow the repository instructions and run:
dsh plugin --profile web add github:keleus/deepseek-pet
If you do not have a global dsh installation, you do not need to install the CLI first, and can directly use npx:
npx @deepseek-ai/dsh plugin --profile web add github:keleus/deepseek-pet
The README clearly states: Node.js and pnpm are required for installation; both commands have the same effect, pulling the plugin from GitHub and installing it into the web profile. The directory page also reminds that if you want a reproducible installation, you can pin the commit hash, for example:
dsh plugin add github:keleus/deepseek-pet#287414d31c9a8fe4122109e85d8fe9dc0299cdc4
The hash above is the latest commit of the main branch of the repository on 2026-08-15, for demonstration purposes only; please double-check on GitHub before actual use.
After installation, start or restart the web interface. For the global CLI:
dsh web
For npx:
npx @deepseek-ai/dsh web
If the web page is already open, just refresh it. The update method is to run the installation command again, then restart the web process and refresh the page. To uninstall:
dsh plugin --profile web remove deepseek-pet
If you do not have the global CLI, replace the preceding command with npx @deepseek-ai/dsh.
If you want to modify the source code before installing, the process given in the README is:
git clone https://github.com/keleus/deepseek-pet.git
cd deepseek-pet
npm install
npm run build
dsh plugin --profile web add .
Local installation will link the current directory, and you can re-build after making changes to continue debugging. The development build also requires Node.js 22.19 or higher, as well as Python 3 and Pillow, to generate transparent WebP expressions from the source images and embed them into the client; if you just install normally from GitHub without modifying assets, just use the dsh plugin add command above.
Typical Usage¶
After installing and opening dsh web, the pet will appear on the web overlay. You can try the operations in the README in this order:
- Drag the character to a position that does not block the chat and trace areas.
- Hover the mouse over the character and scroll the wheel to adjust the size to a comfortable level between 65% and 140%.
- Send a regular task to check whether the bubble follows the output and whether the expression switches to thinking or typing.
- Open multiple sessions in parallel to check whether the bottom session bar and the “swamped” state appear; click an active session to confirm that the focus switches.
- When encountering a tool approval or question card, directly allow, deny, select or input in the bubble.
- When you do not need the desktop pet temporarily, double-click the character or click the “-” under its feet to minimize it to the bottom right corner; single-click the character to trigger a short phrase matching the current status.
These steps do not require additional configuration files. The plugin reads the current session snapshot of Harness Web, has no independent pet server, and does not require you to fill in an API Key.
Applicable Scenarios and Notes¶
It is suitable for people who are already using dsh web and want a visual prompt on the interface that synchronizes with the task status. It is a fun plugin, does not provide new model capabilities, and does not replace the Trajectory, tool panel or notification plugins. You will not see this whale when using the terminal TUI or headless runtime mode, because the client clearly marks platform: web.
There are several notes you need to read separately before use:
- The plugin runs with the permissions of the current dsh process, and may execute code during installation. Both the directory page and the repository recommend checking the source code and license first. The license of this repository is MIT, and the copyright statement is Copyright (c) 2026 keleus.
- The expression images are fully switched, not detachable Live2D parts. If you want to replace the character yourself, you need to regenerate WebP according to the asset process of the repository (
npm run assets) instead of just dropping a.moc3file. - Image input will display the blindfolded state, which is a performance of the plugin based on the session content, and does not mean that it has added visual capabilities to the model.
- The metadata of the community directory and GitHub may be out of sync (star counts and recent push times have lagged before). The installation command, profile and commit hash shall prevail based on the repository README and GitHub commits you open.
- DeepSeek Harness is still in developer preview, and core plugins and APIs will change. This pet is attached to the
shell.overlayslot, so if the slot or session snapshot fields are adjusted in the future, the expression mapping may need to be updated accordingly.
Summary¶
deepseek-pet does a very narrow thing: placing a gluttonous blue whale on the DeepSeek Harness web page, using full expression images and CSS animations to translate tasks, tools, context and idle states into easily understandable visuals. The maintainer is keleus, open-sourced under MIT, and can be used after refreshing after installing to the web profile.
Directory page: https://deepseek-harness-plugin.com/zh-CN/plugins/deepseek-pet/
GitHub: https://github.com/keleus/deepseek-pet