Introduction¶
When running agents in DSH, a common practice is to maintain a separate set of Python bots in an additional terminal: modifying config.yaml, checking logs, and manually starting or stopping processes. WeChat UI automation, local ASR, and GPU singing synthesis should remain on the bot side; rewriting the entire system in TypeScript would be costly and prone to losing GPU capabilities. Below is an introduction to the community plugin dsh-we-whalegirl (maintainer gzyy111): it provides a Host + Client control plane within DSH, responsible for process hosting, same-origin proxying, settings pages, and whalegirl_* agent tools, but it does not replace the bot itself.
What is this¶
dsh-we-whalegirl is a workflow-type plugin on DeepSeek Harness (DSH) (current version 0.1.0, plugin code licensed under MIT). It is a control plane: it launches/stops bot processes, proxies browser requests to local HTTP APIs, registers 9 Agent tools, and provides a complete settings page at Settings → Whalegirl. It is not the bot itself—WeChat UI automation, faster-whisper, edge-tts, SoulX-Singer / ACE-Step (conda + GPU) are still handled by the Python side; the plugin does not include or rewrite them.
- Directory Page: skillhub.cn/plugins/gzyy111/dsh-we-whalegirl
- Source Code: github.com/gzyy111/dsh-we-whalegirl
The community plugin directory is an independent site and has no official affiliation with DeepSeek or Hithink. Please read the source code and license yourself before installing. The plugin runs with the permissions of the current DSH process.
Core Features¶
Process and Proxy¶
The Host side uses a supervisor to launch web_main.py from the bot directory via subprocess. The startup sequence is fixed: Hot-activate WeChat UIA → Start web service → Connect to WeChat. It supports Start, Stop, and Restart; before restarting, it checks the queue to avoid interrupting in-flight replies.
The same-origin proxy forwards /dsh-we-whalegirl/* to 127.0.0.1:<port>/api/*. The settings page accesses the same-origin API via fetch, requiring no CORS handling.
Feature Toggles and Persona¶
The settings page manages 22 feature toggles, covering chat core, media and stickers, three-tier backends for song requests, five divination arts, jokes, boot message backfill, frequency parameters, etc. Feature toggles use the bot-side config.yaml as the single source of truth; the plugin does not copy state. Most toggles require a bot restart to take effect (handlers are injected once at startup), with persona saving being the exception.
Persona supports display name, description, prompts, temperature, token limit, and sample dialogues; saving triggers a hot update without restarting or reconnecting to WeChat. A “Lock to Factory Persona” toggle is provided.
Reply Frequency and Platform¶
Reply frequency offers three preset levels (Quiet / Normal / Chatty) and 12 fine-tuning items, distinguishing between “Must Reply to @” and “Probabilistic Participation”.
Platform-related features include WeChat channel control, monitored group lists, and QQ Open Platform credentials (Secret is encrypted by the bot itself using Fernet). There are also sections for Voice & Song Requests (voice/tone/speed, real-singing voice version, mix ratios, three-tier backend switches), and Model & Advanced (AI interface, log level, read log tail, clear context, read-only display of plugin’s own configuration).
Agent Tools and Optional Panel¶
Registers 9 tools: whalegirl_status, whalegirl_start, whalegirl_stop, whalegirl_restart, whalegirl_say, whalegirl_image, whalegirl_cover, whalegirl_divination, whalegirl_config. You can use these tools within DSH conversations to command the bot.
When the config item enablePanel: true is set, a “Whalegirl” overview (stats, capability self-check, message stream, logs) appears in the sidebar.
Installation and Activation¶
Install from GitHub (Recommended)¶
dsh plugin --profile web add github:gzyy111/dsh-we-whalegirl
Install from Local Directory¶
dsh plugin --profile web add /path/to/dsh-we-whalegirl
You can also use the local installation entry in the “Plugins” page of the DSH Desktop version to point to the plugin directory. Restart DSH once after installation (the bundle layer requires a restart to assemble).
Required Configuration¶
Fill in botRoot in the profile’s cordis.patch.yml, otherwise clicking “Start” will prompt that it is not configured:
- id: whalegirl
name: dsh-we-whalegirl
config:
botRoot: 'D:/bots/deepseekgirl' # Directory containing web_main.py
pythonExe: '' # Blank = <botRoot>\.venv\Scripts\python.exe
port: 8080
mode: auto # auto | attach | manual
autoStart: false
stopOnExit: false
allowAnyRoom: false
automaticRestart: false
enablePanel: false
The bot itself must meet the following requirements:
- Windows + a logged-in WeChat Desktop Version (UI automation, window cannot be minimized)
.venv\Scripts\python.exeandweb_main.pyexist in the bot directory- The bot HTTP API listens only on
127.0.0.1:<port>
This plugin depends on /api/settings*, /api/style*, /api/capabilities, and /api/divination provided by the bot. If using the upstream original linxisama/deepseekgirl, you need to add these interfaces first (the settings page depends on them).
Typical Usage¶
Overview of How It Works¶
DSH Desktop ── Host Plugin ──┬─ supervisor: launches web_main.py via subprocess
├─ Same-origin proxy: /dsh-we-whalegirl/* → 127.0.0.1:8080/api/*
└─ 9 whalegirl_* tools
Browser Page (Settings → Whalegirl) ──fetch──> /dsh-we-whalegirl/api/* (Same-origin, no CORS)
Daily usage involves starting/stopping processes, modifying persona and frequency, and toggling capabilities in Settings → Whalegirl; calling whalegirl_status in Agent conversations to check status, or using tools like whalegirl_say to issue actions. When a dashboard is needed, set enablePanel to true, restart DSH, and use the sidebar overview.
Plugin’s own log path: %USERPROFILE%\.dsh\dsh-we-whalegirl\plugin.log (2 MB rotation).
Applicable Scenarios and Notes¶
Suitable for: Users who have already self-built WeChat/QQ “Whalegirl” type Python bots on Windows (including web_main.py and local venv) and want to unify start/stop and configuration changes within DSH, and operate via whalegirl_* in conversations, without moving WeChat automation and GPU singing synthesis into the plugin.
Notes:
- The WeChat channel relies on desktop UI automation; the bot must run in an interactive desktop session.
- Music library, stickers, and model weights are on the bot side; the plugin does not contain these resources.
- The settings page field whitelist is determined by the bot-side
settings_api.py. - Design principles include: Failure does not drag down the host (Promise catch, proxy and page error boundaries, registration failure degradation).
Conclusion¶
dsh-we-whalegirl consolidates the operations of self-built “Whalegirl” bots into DSH: process hosting, 22 feature toggles, persona hot updates, frequency and platform configuration, and 9 whalegirl_* tools. Bot capabilities remain on the Python side; the plugin acts only as a control plane.
- Plugin Directory: https://www.skillhub.cn/plugins/gzyy111/dsh-we-whalegirl
- GitHub: https://github.com/gzyy111/dsh-we-whalegirl