Adds a configurable humanized whale-girl maid persona with immersive roleplay, speaking modes, and a lightweight layered memory with query-triggered recall.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:loonai321/dsh-humanized-deepseek-maid
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. Only install sources you trust, and pin a commit (github:owner/repo#sha).
README
⚠️ AI-GENERATED CODE — This project's code was generated by an AI (DeepSeek) with human guidance and testing. Review the source before using it in production. / 本插件的代码由 AI(DeepSeek)生成,并在人工指导下完成测试。使用前请自行审阅源码。
🙏 Acknowledgment — The layered-memory design of this plugin adapts ideas from cuiyuestar/Autonomous-Long-Term-Memory-System (ALTM) (layered memory, context governance, query-triggered recall, dedup governance), implemented in a lightweight, zero-dependency way. Many thanks to the ALTM author. / 本插件的记忆系统设计参考了 ALTM 的分层记忆、上下文治理、查询诱导召回与去重治理思想,并做了零依赖的轻量化实现。
A DeepSeek Harness (DSH) plugin that gives the agent a humanized whale-girl maid persona — a cute, token-hungry "big fat fish" maid. It stays lightweight to save tokens, keeps fully immersive roleplay, and maintains long-term memory, so the whale-girl can accompany your work and daily life. In the Web UI's Settings → Plugins you can change the persona address, the self-name, and the memory file location.
Installable via dsh plugin --profile web add (declares a dsh.bundle manifest with a cordis.patch.yml).
Features
- Persona injection — a compact system-prompt section is injected into every model call: a tsundere-but-warm whale-girl maid who is work-first, keeps interactions short, and keeps token cost low.
- Turn-open & turn-end banter — in proactive mode the maid opens each turn with an in-character line setting expectations (with a playful joke to cheer you up) and closes with a 1–3 sentence summary/evaluation of the exchange; in default mode a light opener and a brief in-character closer or a little chat are welcome; passive mode stays quiet.
- Déjà-vu (old-memory callback) — when the user's current topic, question, or bug resembles something in memory, the maid occasionally brings it up naturally (e.g., a "sleeping badly" remark is followed up days later with "sleeping better now?"), at low frequency and briefly, to deepen the companionship feel.
- Immersive rule — unless the user mentions the plugin/settings/memory topics, the model must not expose plugin meta-information (existence, name, settings, memory files, "I'm roleplaying") in any non-necessary context.
- Settings UI — a "鲸鱼娘女仆插件" card in Settings → Plugins of the web GUI:
- Speaking mode: proactive / passive / balanced (default).
- Self-name (DSH refers to itself): default
我. - Address for the user: default
主人. - Memory file location: defaults to the plugin folder; the file is named
DeepseekMemoryand is auto-created on first start and re-created if missing. - Save feedback: after saving, the card shows "✓ saved (applied immediately, config revision N)" or "✗ save failed".
- Self-check / always-fresh persona: saving broadcasts a prompt-refresh event so the next conversation uses the latest persona/self-name/address/speaking mode; at the start of every reply the model re-confirms its settings against the latest config and discards any stale address or mode — settings changes always take effect.
- Layered memory (lightweight ALTM-inspired) — zero runtime dependencies:
- Stable facts (user profile): conservatively extracted from self-disclosure statements ("我叫…/我喜欢…/我住在…"), deduplicated and always injected.
- Interaction log: one concise line per turn (timestamp + user→assistant), capped, with the recent tail injected.
- Query-triggered recall: on the first model step, memory lines are scored against the current user message by character-bigram keyword hits; matching older lines are injected as a short "recalled fragment" (≤350 chars, ≤3 items) via
agent/pre-step— zero overhead when nothing matches. - Dedup/governance: facts are deduplicated by similarity; counts and sizes are capped.
- Config/status endpoints —
GET /dsh-humanized-maid/status,POST /dsh-humanized-maid/config(CSRF-checked, atomic writes).
Installation
# From this GitHub repo
dsh plugin --profile web add loonai321/dsh-humanized-deepseek-maid
# Or a local directory
dsh plugin --profile web add link:D:\path\to\dsh-humanized-deepseek-maid
Restart dsh web, open Settings → Plugins, and configure the 鲸鱼娘女仆插件 card.
The plugin is plain JavaScript with no build step and no runtime dependencies.
Configuration
| Field | Default | Meaning |
|---|---|---|
mode |
default |
proactive / passive / default speaking style |
selfName |
我 |
How DSH refers to itself |
address |
主人 |
How DSH addresses the user |
memoryPath |
(plugin folder) | Directory for the DeepseekMemory file |
Memory file
DeepseekMemory (plain UTF-8 text, in the configured directory) has two sections:
# ===== 对主人的了解(稳定事实)=====
- 我叫小明
# ===== 互动记录 =====
[08-16 14:23] 主人: … → 女仆: …
Only real interactions are recorded (direct user messages with source.kind === "user"); nothing is fabricated. Facts are extracted conservatively and deduplicated.
Memory scope is global: all workspaces and sessions share the same
DeepseekMemoryfile (in the configured memory directory, defaulting to the plugin folder). To isolate memory per workspace/session, pointmemoryPathat different directories.
Acknowledgments
- Autonomous Long-Term Memory System (ALTM) — the layered-memory / context-governance / query-triggered-recall / dedup concepts this plugin's memory system adapts. License: Apache-2.0.
- The whale-girl maid character is a community derivative of the OC "溟月" (by 上善, redesigned with DeepSeek elements by ZipZipPipe) — if you ship artwork based on it, please honor CC BY-NC-SA 4.0 (attribution chain: 上善 → ZipZipPipe → this project). No artwork is bundled with this plugin.
License
MIT.
Links
More in this category
Anionex/dsh-turn-rewind★ 62
Rewind conversation and workspace state, powered by a persistent Change Ledger.
Nwflower/dsh-chat-import★ 43
Import full-fidelity chat histories from 13 coding agents (Claude Code, Codex, ChatGPT, Cursor, Gemini, opencode, and more) as resumable DeepSeek Harness sessions, with reverse export back to Claude Code.
whyihaveyou/dsh-suite#plugin-session-export★ 35
Export the append-only session log as human-readable Markdown or HTML, grouped by trajectory source.
Chinesezjc/dsh-interconnect★ 28
Cross-instance message and event handoff between DSH instances via an interconnect server.
Moeblack/dsh-message-edit★ 24
Branch-based message editing, reroll, retry, and a version timeline.
hellodigua/dsh-share★ 19
Share your conversations with one click.