A WSLg-compatible DSH desktop pet reacts to agent activity, lets you message the active session, and loads Hatch-Pet v2 atlases or transparent portraits.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:hasan-aghayev/dsh-pet-companion
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
A floating desktop pet for DeepSeek Harness. It reacts to agent activity in a separate transparent window and includes a folder-based library for adding pets from animated atlases or transparent portraits. The bundled collection currently includes Lokki and Professor Leo, and the folder-based library supports adding more pets.
Screenshots
Built-in pets
Professor Leo is a curious lion scientist with a copper mane, teal glasses, and a white lab coat. He brings a researcher's curious, thoughtful personality to the companion collection. His name and description follow the English or Simplified Chinese DSH locale.
What it does
- Displays the selected pet in its own movable desktop window, including when DSH is minimized.
- Switches between idle, working, waiting or review, and error poses as DSH agent events change.
- Provides hover controls for Settings, a text composer, and Close pet. Right-clicking the pet opens a menu with Settings, Next pet, and Close pet.
- Lets the DSH sidebar's Show pet switch hide or restore the companion while leaving the plugin enabled. Closing the pet also turns this switch off.
- Offers appearance, language, size, opacity, always-on-top, reduced-motion, and wandering settings.
- Follows DSH's English or Chinese locale by default; the language can also be selected in Settings.
- Includes Lokki, a copper tech fox, and Professor Leo, a curious lion scientist. Both ship with Hatch-Pet v2 animation atlases and English and Simplified Chinese labels.
- Loads additional pet folders without rebuilding or reinstalling the plugin. A single transparent portrait can be used without creating an animation atlas.
Install and remove
dsh plugin --profile web add github:hasan-aghayev/dsh-pet-companion
Change web to the DSH profile you use. On first start, the companion downloads its pinned Electron runtime and opens a desktop window. A graphical desktop is required; WSL2 users need WSLg enabled.
To remove the plugin:
dsh plugin --profile web remove dsh-pet-companion
Disabling the plugin in DSH stops its desktop process but keeps it installed. Hiding the pet with Show pet only changes visibility. Pet files and preferences remain under $DSH_HOME/pet-companion after removal, so they are available if you install the plugin again.
Settings and controls
Open Settings with the gear button or by double-clicking the pet. Use Show pet in the DSH sidebar to bring a hidden companion back. The Close pet control hides the companion and turns off Show pet; the plugin remains enabled.
The text composer sends the entered message to the most recently active live DSH session through DSH's public agent API. It does not show a session picker. Press Enter to send and Shift+Enter to add a line.
Add another pet
Open the Pet library folder from Settings. Add one folder for each pet, with a pet.json manifest and its artwork inside. The folder name must match the manifest's id. New folders are discovered automatically within a few seconds; Refresh rescans the library immediately.
Hatch-Pet v2 animation atlas
Use a 1536 x 2288 pixel atlas (8 columns by 11 rows) and set spriteVersionNumber to 2:
{
"id": "miso",
"displayName": "Miso",
"description": "A small lunar cat.",
"spriteVersionNumber": 2,
"spritesheetPath": "spritesheet.webp"
}
Optional displayNameZh and descriptionZh fields provide Simplified Chinese labels. Hatch-Pet v2 uses its standard animation rows, including idle, walking, waving, jumping, failed, waiting, working, and review poses, plus 16 look directions.
Transparent portrait
A single PNG or WebP can be used without an animation atlas. Portraits get a gentle breathing motion:
{
"id": "miso-portrait",
"displayName": "Miso",
"description": "A portrait with gentle motion.",
"format": "portrait",
"imagePath": "portrait.png"
}
Names may use lowercase letters, digits, and hyphens. Image paths must stay inside the pet folder. Images must be no larger than 25 MiB; portrait dimensions can be up to 4096 x 4096 pixels. Built-in pet IDs are reserved.
Data and privacy
Pet art, preferences, window position, and session IDs stay on the local machine. The plugin observes DSH agent lifecycle and approval or question events to select an animation. It does not read conversation text, files, or credentials. Text submitted from the composer is sent only to the selected live DSH session through DSH's public agent API. The plugin downloads the pinned Electron runtime on first start and makes no other network requests itself.
Compatibility
Version 0.1.1 is activation-tested with DeepSeek Harness 0.2.1-rc.2 and declares the supported host range as >=0.2.1-rc.2 <0.2.2. The package uses ready-to-run JavaScript and does not require a TypeScript build during installation.
Development
pnpm install
pnpm check
The package contains ready-to-run JavaScript and static desktop files, so it needs no install-time build script. The root package.json declares the dsh.bundle manifest in cordis.patch.yml.
License
MIT. The Lokki sprite art is included with permission from its creator, Hasan Aghayev. The Professor Leo sprite art was generated for this repository and is included in the plugin package. Do not redistribute Lokki artwork separately from this plugin without permission.
Links
More in this category
PC2005-cloud/dsh-pet#dsh-pet★ 5347
Desktop pet for the DSH Web UI on Windows, macOS and Linux: 106 transparent animations in the browser overlay or a transparent always-on-top desktop window, throw-and-bounce drag physics with squash and particle scoring, a work-status bubble driven by live session events, self-talk and chat with persistent memory, balance display, meme-image bubbles, multiple pets on screen, and drop-in custom animations and pet packs.
Alterssss/dsh-bili-whale★ 862
A Bilibili companion that keeps its own schedule. A 60-second tick in the plugin host wakes a dedicated agent session at a random moment inside the configured time windows (opting out of a day is a configurable chance), then hands it a bundled CLI of 38 subcommands — feed, subtitles, danmaku, comments, ffmpeg frame grabs, and two diaries. Shares at most N items a day by commenting on them and @-mentioning the owner (default 3, enforced from a written quota log, and it stops on rate-limit or captcha signals). Also polls comment replies, direct messages and live-room danmaku; replies to anyone but the owner are queued for approval in Settings. Settings → 养鱼 writes ~/.dsh/bili-whale.config.json; cookies live separately in ~/.bili-ai/credentials.json and are never echoed back. The HTTP routes are loopback-only behind DSH's trust fence. Needs Node 18+ and ffmpeg on PATH for frame extraction.
Nagi-ovo/dsh-ads★ 707
Parody ads in 2005-Chinese-web style: sidebar banners, in-chat feeds, corner popups, and a close button whose hit area is smaller than it looks. All fictional.
yyh-001/dsh-meme★ 488
Chat meme stickers: text-only send, mood auto-send, QQ/WeChat-style picker, auto-learn, custom packs.
vlln/whale-girl★ 400
Desktop pet (QQ-pet style): floats in the corner, draggable, feedable, playable.
a86582751/dsh-nexttavern★ 218
NextTavern is a long-form roleplay plugin for DeepSeek Harness 0.1.7-rc.2 Web, with character-card import and creation, worldlines, worldbooks, layered long-term memory, keyword/semantic/hybrid retrieval, character agents, and card or novel export. SillyTavern character-card import is supported; v0.2.9 fixes distribution and installation.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.