Preface¶
The DSH plugin mechanism extends the Web client into a local overlay. dsh-muyu addresses the issue of lacking a lightweight local feedback mechanism while waiting for the model to think and stream output: it places a clickable electronic Muyu (Wooden Fish) in the bottom right corner of the Web client; tapping it manually records merit; when the model is busy, it taps itself automatically.
This plugin does not write into the conversation history, does not initiate extra requests, and only maintains a lightweight interaction counter locally within the browser.
Plugin Positioning¶
dsh-muyu is a DSH Web plugin under the MIT license, maintained by liuwenji007. Its core purpose is to provide a clickable electronic Muyu in the bottom right corner of the Web client, suitable for light interaction while waiting locally for the model response.
Core Features¶
The following capabilities all reside within the Web client interface:
- Display a clickable electronic Muyu in the bottom right corner of the Web client.
- Clicking the character’s head manually adds 1 merit; tapping it too much causes a bump.
- Automatically tap and record merit when the current session is busy, defaulting to approximately 1 merit per second.
- Merit is only recorded locally in the browser, not in the conversation history, and no extra requests are made.
- The counter can switch between a Censer or a Wooden Board; it displays the original number if within 9999, and
Nkif exceeded. - Settings → Muyu allows changing the toggle, Censer/Board style, auto-tap speed, bump combo count, and image source.
- Supports built-in, locally made, gallery, and URL image sources, and allows importing
zipimage packs. - When the system “Reduce dynamic effects” is enabled, bounce and floating +1 are skipped.
- Allows exporting official filename templates and alignment packs.
Installation & Enablement¶
Version Requirements¶
Confirm that the DSH version meets the requirements before installation:
dsh ≥ 0.1.0-rc.8 (Recommended 0.1.1-rc.2)
dsh-muyu 0.1.5+ depends on @deepseek-ai/dsh-client-store in the host module table. Pay attention to version pairing:
- New hosts should pair with
dsh-muyu ≥ 0.1.5. - Old hosts should first upgrade
dsh ≥ 0.1.0-rc.8and then upgrade the plugin. - If the old host is not upgraded temporarily, you can pin
dsh-muyu@0.1.4.
Install from npm¶
Suitable for when the Web client is already running normally:
dsh plugin --profile web add dsh-muyu
Restart the Web client after installation or update:
dsh --profile web
Install from GitHub¶
You can also install directly by specifying the GitHub repository:
dsh plugin --profile web add github:liuwenji007/dsh-muyu
Restart after installation:
dsh --profile web
If git installation with pnpm ≥ 10 is intercepted, you may need to add build allow items:
allowBuilds:
dsh-muyu: true
Then execute the add command again.
Install via Local Link¶
You can use a local link when debugging local source code:
dsh plugin --profile web add link:/your/path/dsh-muyu
Start the Web client:
dsh --profile web
Verify Installation¶
After installation, first check if the Muyu appears in the bottom right corner. You can also use a command to confirm the package is visible in the config:
dsh --profile web --dump-config
Refreshing the page is not always enough; it is recommended to restart the Web client after installation or update.
Uninstall¶
Uninstall command:
dsh plugin --profile web remove dsh-muyu
A restart of the Web client is also required after uninstallation.
Typical Usage¶
Manual Tapping While Waiting¶
When the model is thinking and streaming output, the character in the bottom right corner shows a busy status. You can manually click the character’s head to add 1 merit per click. Tapping it too much causes a bump.
Automatic Tapping When Session is Busy¶
When the current session is busy, the plugin will automatically tap and record merit, defaulting to approximately 1 merit per second. The auto-tap speed can be adjusted in settings.
View Current Session Count¶
When switching sessions, you can see the tap count and auto-consumption for the current session. Merit only records counts related to the current session and will not be mixed into the chat history.
Switch Counter Style¶
In Settings → Muyu, you can switch between a Censer or a Wooden Board. It displays the original number if within 9999, and Nk if exceeded.
Replace Image Sources¶
Image sources support four types: built-in, locally made, gallery, and URL. After importing a zip image pack, you can switch packs in the gallery.
The image source directory or zip requires these specified filenames:
idle.png
auto-hit.png
manual-hit.png
bump.png
bump-big.png
stick.png
board.png
censer.png
add.png
layout.json is optional.
Export Templates and Alignment Packs¶
You can export the official filename template or the alignment pack. After importing or creating, you can switch the image source in the gallery or settings.
Rebuild After Modifying Source Code¶
If you have modified src/client/assets/ or src/config.ts, you need to rebuild:
pnpm run build
Applicable Scenarios & Notes¶
This plugin is suitable for DSH Web users who want to turn the time waiting for the model response into local light interaction. Its counting stays only on the local browser, does not enter the chat record, and does not generate extra requests.
Note the following points:
- The plugin runs with the current
dshprocess permissions; please check the source code, dependencies, and MIT license before installation. - Combined packages may already have a built-in
ui-muyu, disable it if necessary. - Merit is recorded in local
localStoragewith the key namedsh.muyu.merit, storing up to 100 of the most recently tapped sessions; deleted conversations will not be cleared automatically. - Drafts and gallery packs are stored in
IndexedDBwith the key namedsh.muyu.art. - Characters cannot be dragged to avoid blocking the sidebar.
- When the system “Reduce dynamic effects” is enabled, bounce and floating +1 are skipped.
Resources¶
GitHub Repository:
https://github.com/liuwenji007/dsh-muyu