Skip to main content

dsh-aemeath-pet

7Stars0Forks0Issues0Watchers

Add a pixel-style desktop mascot to DSH Web GUI, switching between idle/working/failed animations based on agent status and displaying bilingual dialog bubbles.

Evidence5/5methodologySourceInstallMaintenanceDSH versionSecurity scan
Machine-auditedInstall commandRepo verifieddsh-plugin topicLicenseREADMEAI wiki
Language
TypeScript
License
Apache-2.0
Branch
main
deepseek-harnessdshdsh-plugin

Install

cmdweb profile
$ dsh plugin --profile web add github:culture-flask/dsh-aemeath-pet

Run the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial

Install via your agent

Install the DeepSeek Harness plugin culture-flask/dsh-aemeath-pet for me: review the repository at https://github.com/culture-flask/dsh-aemeath-pet first, then run the install command and verify the plugin loads successfully.

Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.

One-Line Description

Adds a pixel-art desktop pet named "Aemeath" to the DeepSeek Harness Web GUI: stays in the corner of the screen, automatically switches between idle/work/failure animations based on agent status and speaks bilingual Chinese/English bubbles.

Core Features

  • Automatically switches between idle, working, and waiting loop animations based on current session state; plays failure animation and shows error bubble when agent encounters errors
  • Jumps to celebrate and says "Leave it to me!" when agent starts a new task, jumps again when a round finishes and says "All done ✨"
  • When idle, randomly runs left/right diagonally, works in place, or jumps; appears in both docked and free-placement modes
  • Supports mouse dragging to change position, right-click menu to switch docked/free placement, resizing (small/medium/large), hiding and resetting position
  • Clicking the pet causes it to wave back and randomly says a greeting
  • Preferences (enabled, scale, docked or free placement position) persist to localStorage and restore after browser refresh

Technical Implementation

  • Language: TypeScript
  • Key Dependencies: @deepseek-ai/cordis, @deepseek-ai/dsh-client-runtime, @deepseek-ai/dsh-client-locale, @deepseek-ai/dsh-host-webserver
  • Architecture Pattern: host + client dual-end; host half injects into webServer via cordis and registers precise route /aemeath-pet/spritesheet.webp to return spritesheet, client half registers via __ModuleLoader__ and injects sessions + locale, subscribes to session snapshots to derive pet state
  • Entry Files: src/index.ts (host side), src/client/index.ts (client side)
  • Rendering: Canvas draws sprite sheets, DOM injects bubbles and right-click menus, no React dependency

Use Cases

DSH Web users who want a more companionable interface instead of just a cold command-line panel. After installation, this pixel pet stays in the bottom-right corner of the screen and provides feedback throughout your interactions with the agent—asking questions, waiting for responses, and debugging errors. Ideal for developers and power users who keep DSH running for extended periods. If you prefer not to be disturbed by animations, you can hide it with one click.

Prerequisites & Compatibility

DependencyMinimum VersionDescription
DSH>=0.0.1Engine requirement declared in plugin manifest, almost no host version restrictions
NodeNot declaredNot required at runtime; build dependency requires @types/node ^24.0.0, only affects development
PlatformCross-platformHost side runs inside DSH, client side runs in browser, no native bindings
Native ModulesNoneNo dependencies on node-pty, node:sqlite, or other native extensions

Installation

dsh plugin --profile web add github:culture-flask/dsh-aemeath-pet

Configuration Options

This plugin requires no pre-declared configuration options. All adjustable parameters take effect immediately via the right-click menu:

SettingTypeDescriptionDefault
Show / HideToggleWhether to display the pet on screen; hiding leaves a paw print button to summon it againShown
Placement ModeToggleDock to bottom-right corner, or freely drag to any positionDocked
SizeRadioThree scale levels: 0.75 / 1 / 1.25Medium (1.0)

These preferences are written to the current browser's localStorage (key: dsh-aemeath-pet.prefs), not synced across devices; to restore defaults, click "Reset Position" in the menu or clear this key.

FAQ

Q: What to do if the pet doesn't appear after installation?

A: Restart dsh web and perform Cmd/Ctrl+Shift+R hard refresh in the browser. The old Service Worker may have cached the missing sprite sheet route. Note that --profile web in the command is required—the plugin only works for the web profile.

Q: Where is pet data stored? Does it sync with the account?

A: Preferences (enabled state, scale, docked or free placement position) are written only to the current browser's localStorage, key: dsh-aemeath-pet.prefs. It doesn't go online and doesn't sync across devices. Uninstalling the plugin or clearing this localStorage key restores defaults.

Q: Will the pet block other buttons on the page?

A: No. The pet's root container is fixed with pointer-events: none, re-enabling pointer events only on the canvas, menu, and "paw print" button; CSS sets the highest z-index (2147483000) but doesn't intercept interactions with underlying applications.

Q: What happens on mouse click / drag?

A: Clicking plays a wave animation and randomly says "Hi~" or "I'm here~"; dragging for more than 5 pixels enters free placement mode, and the position is written back to localStorage after release. Right-click opens the menu for size, dock/freedom, hide, reset, etc.

Q: What happens if asset loading fails?

A: The canvas remains blank, and the pet shows a "Asset loading failed..." bubble. This is usually due to unreachable /aemeath-pet/spritesheet.webp route on the host side or incorrectly installed lib resources. Please verify the plugin is added to dsh.profile.bundles and dsh web has been restarted.

Q: Is this an official plugin? Can the assets be used commercially?

A: No. The Aemeath character is from "Wuthering Waves" (Kuro Games), and the sprite sheet is sourced from the Apache-2.0 version of aemeath-codex-pet and dynamics released by Bilibili user "Neuro音乐"; the plugin code itself is Apache-2.0, but the character image and original art assets rights belong to the original author and respective rights holders. The repository grants no additional commercial usage license.

Difficulty Level

Beginner — Install with one command to see the pet; all interactions completed via right-click menu and dragging, no documentation reading or config file editing required.

Known Issues & Limitations

  • When localStorage is unavailable (privacy mode, quota exhausted), preferences are retained only for the current session and lost after refresh; the plugin won't throw errors
  • First random action appears 4–8 seconds after initial launch, subsequent intervals are 6–15 seconds; actions are paused when browser tab is backgrounded and won't be backfilled
  • During dragging or when playing one-shot animations, new random actions and state transitions are postponed, not interrupted
  • Pet only works for web profile; CLI profile won't load it; also don't install to desktop profile—it won't start due to missing webServer injection
  • Character image is fan-made material for personal use only; redistribution or commercial use is not recommended

Read the usage guide →

Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.

Listing badge

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/culture-flask/dsh-aemeath-pet)

Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.

← Back to plugin directory