Bundle
dsh-web-whale-maid
Anime maid whale desktop pet for the DeepSeek Harness (dsh) Web UI: real-time LLM dialogues, 8 mood animations, satiety reserve system, persistent speech bubble, and mobile-adapted cupboard UI.
- Source
- AcidGr
- stars
- 7 stars
- License
- MIT
- Updated
- Updated 1 hour ago
Readme
# dsh-web-whale-maid (DeepSeek Harness Desktop Pet · Anime Maid Whale)
[](https://awesome-dsh-plugin.com)
**English** | [简体中文](README.zh.md)
An interactive, anime maid whale desktop pet plugin customized for the [DeepSeek Harness (DSH)](https://github.com/deepseek-ai/deepseek-harness) Web UI.
Features LLM thinking and mood linkage, 30,000 Token satiety pool, persistent speech bubbles, mobile-responsive cupboard modal, 5-hour task awareness ledger, and dual-layer persistence.
---
## ✨ Features
- **8 Mood Frame Animations**:
- `idle`, `hungry`, `happy`, `angry`, `eating`, `scared`, `sad`, and `thinking`.
- Built from a 1024x2048 HD sprite sheet processed with chroma keying and custom despill algorithms for clean, crisp edges on Retina screens.
- **Strict Mood & LLM Linkage**:
- The pet's mood and animation only change when an LLM invocation occurs; otherwise, it remains in its current state.
- **Thinking Animation**: Whenever an LLM call starts (upon feeding or work session completion), the pet immediately transitions into the `thinking` animation. When the LLM outputs its response, the pet switches to the result mood and renders its speech bubble.
- **Dual-Zone Touch & Persistent Speech Bubble**:
- **Permanent Bubble**: Speech bubbles and moods remain permanently on screen until the next LLM response arrives.
- **Clicking Pet Body**: Opens the antique wooden maid cupboard modal.
- **Clicking Speech Bubble**: Immediately dismisses the speech bubble and resets the pet back to standard standby (`idle`) mode.
- **Satiety Reserve Pool (Tokens as Food)**:
- 30,000 Token maximum capacity.
- Four tiers of rice food items on the shelf:
- `Grain of Rice` (+1 Token)
- `Spoon of Rice` (+1,000 Tokens)
- `Bowl of Rice` (+3,000 Tokens)
- `Pot of Rice` (+10,000 Tokens)
- 5 perception tiers: `Starving!` (<2,000), `Very Hungry!` (2,000-5,000), `Not hungry, but wouldn't mind a snack!` (5,000-10,000), `Satiated & Content` (10,000-20,000), and `Stuffed!` (>20,000).
- **Body & Bubble Size Scaling Slider**:
- Continuous size scale slider located inside the cupboard drawer (50% to 180% range, 5% step).
- Scales both the whale maid pet and its speech bubble simultaneously in perfect proportion.
- Features real-time percentage display and a quick "Reset" button to 100%, with preferences persisted to disk and localStorage.
- **Universal DSH Model Auto-Discovery**:
- Automatically parses and synchronizes all providers and models configured in `~/.dsh/settings.yaml` (including custom OpenAI-compatible proxies, Ollama, Claude, etc.) alongside DeepSeek official models.
- Automatically identifies the active `agent-default-model` as the initial preference, and refreshes models dynamically whenever the cupboard modal opens. Zero machine-specific hardcoding.
- **Mobile-Responsive Antique Cupboard Modal**:
- Automatically scales down proportionally based on viewport size (`min(92vw/640, 88vh/580)`) and centers smoothly on narrow mobile screens, eliminating clipping.
- **Instant Close on Feed**: Tapping any rice item automatically closes the cupboard modal, allowing the user to watch the pet's thinking animation and response on the main screen right away.
- Smooth mobile momentum scrolling on the speech ledger.
- **Speech Ledger & Dual-Layer Persistence**:
- Records up to 20 past LLM dialogue entries including moods, timestamps, food/session titles, and tokens used.
- Stored concurrently to disk (`pet_durable_memory.json`) and browser `localStorage`.
- **Context Awareness & Strict Prompt Constraints**:
- Aggregates tasks completed in DSH within the past 5 hours to generate tailored commentary and avoid repetitive responses.
- **Zero Emojis**: Strictly forbids all emojis across all prompts, UI elements, and dialogues. Single-line JSON format bounded within 25 Chinese characters.
---
## 📦 Installation
### Method 1: Ask your DSH Agent (Easiest 🤖)
Send this repository URL directly to your DSH web agent in chat:
> "Install this plugin for me: https://github.com/AcidGr/dsh-web-whale-maid"
Your DSH coding agent will automatically configure and mount the plugin.
### Method 2: DSH CLI Install (Recommended)
Run the following command in your terminal:
```sh
dsh plugin --profile web add dsh-web-whale-maid
```
(Or install directly from GitHub):
```sh
dsh plugin --profile web add github:AcidGr/dsh-web-whale-maid
```
After installation, refresh your browser.
### Method 3: Manual / Offline Install
```sh
PROFILE="${DSH_HOME:-$HOME/.dsh}/profiles/web"
mkdir -p "$PROFILE/plugins" "$PROFILE/node_modules/@dsh-profile"
cp -r dsh-web-whale-maid "$PROFILE/plugins/whale-maid"
ln -sfn ../../plugins/whale-maid "$PROFILE/node_modules/@dsh-profile/whale-maid"
# Append to $PROFILE/cordis.patch.yml:
# - insert:
# - id: whale-maid
# name: '@dsh-profile/whale-maid'
```
---
## 🎮 Controls & Interactions
1. **Drag & Move**: Click and drag (or touch and drag on mobile) to position the pet anywhere on the screen. The position persists across reloads.
2. **Open Cupboard**: Click or tap the whale maid's body to open the Maid Cupboard.
- Top shelf: View real-time satiety tokens and percentage.
- Middle shelf: Click food items to feed. The cupboard modal closes automatically.
- Bottom shelf: Configure the active feeding model and browse/clear the speech ledger.
3. **Task Accompaniment**: Whenever a coding session completes, the pet observes the task and comments with appropriate moods and token deductions.
4. **Dismiss Bubble**: Click the speech bubble to close it and immediately return the pet to `idle` standby.
---
## 📂 Project Structure
```
dsh-web-whale-maid/
├── assets/
│ ├── pet_assets.json # Base64 assets package (sprites & cupboard background)
│ ├── pet_sprite.png # 8-mood HD sprite sheet (1024x2048)
│ ├── cupboard_bg.png # Antique cupboard background (640x580)
│ └── rice_*.png # Rice food icon assets
├── cordis.patch.yml # DSH Cordis bundle mount specification
├── lib/
│ ├── index.js # Host half: LLM orchestration, mutex queue, disk storage
│ └── client.js # Client half: animations, responsive layout, touch events
├── package.json # npm package metadata and DSH profile configuration
├── LICENSE # MIT License
├── README.md # English documentation
└── README.zh.md # Simplified Chinese documentation
```
---
## 📄 License
This project is open-sourced under the [MIT License](LICENSE).
Install
dsh plugin --profile web add github:AcidGr/dsh-web-whale-maid
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-web-whale-maid from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.