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 Nk if 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 zip image 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.8 and 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.

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 dsh process 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 localStorage with the key name dsh.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 IndexedDB with the key name dsh.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