Introduction¶
DeepSeek Harness (DSH) Web UI ecosystem emphasizes “everything is a plugin.” dsh-pianist is one of its plugins focused on music interaction. It brings a piano with Canvas2D rendering capabilities to DSH, allowing AI to generate sheet music and perform based on realistic samples. This plugin can serve as a tool for developers to adjust their work pace, and also as a “test” to evaluate a model’s ability to generate deterministic sheet music.
Core Features¶
- Deterministic Timeline: It adopts a deterministic timeline design at the underlying level. This means the same sheet music behaves identically when paused, seeked, or replayed, making it easy to reproduce and test.
- Canvas2D Piano Rendering: It uses Canvas2D technology to render the piano appearance, supporting 88 keys.
- Sample-Based Audio: The timbre is derived from real recorded samples of Salamander Grand Piano V3, including details such as dynamics, key release, string resonance, and pedal actions.
- Multiple Skins and Effects: It provides two skins: “Obsidian Black & Gold” and “Sakura Pearl.” Combined with immersive stage effects (such as a waterfall of notes, reflective water light, and shooting stars), it enhances visual feedback.
- Multimodal Control: It supports mouse glissando, computer keyboard key presses, and arrow key controls.
- Kernel Compatibility: It supports DSH kernel versions from 0.1.0-rc.5 to 0.1.2-alpha.3.
Installation and Enabling¶
Run the following command in the DSH project root directory to install the plugin:
pnpm dsh plugin --profile web add dsh-pianist
If the dsh command is already available in the PATH environment variable, you can also use it directly:
dsh plugin --profile web add dsh-pianist
After installation is complete, start the Web interface to use it:
pnpm dsh web
To uninstall it, you can run:
pnpm dsh plugin --profile web remove dsh-pianist
Typical Usage¶
After installation, the Agent will generate sheet music and play it according to natural language instructions.
1. Natural Language Song Request
It supports descriptions of sheet music, key, and tempo. For example:
* “Please play the first eight bars of ‘Ode to Joy’, using both hands, with the sustain pedal.”
* “Play a C major scale at 100 BPM, a bit slower.”
* “Improvise a light, upbeat little piece to relax.”
2. Interface Settings and Controls
Go to the Settings -> Plugins -> Pianist card, where you can:
* Enable or disable the plugin.
* Switch skins (Obsidian Black & Gold / Sakura Pearl).
* Switch between immersive stage mode or chat card mode (it automatically returns to card mode after playback ends).
* Adjust rendering quality (low/medium/high), volume, and effect toggles.
3. Browser Playback Limitations
Due to browser autoplay policy restrictions, you may need to manually click the play button to hear audio when first loading or switching scenes.
Applicable Scenarios and Notes¶
- Ecosystem Background: The DSH philosophy is “everything is a plugin.” This plugin is a community plugin, and directory sites (such as skillhub.cn) have no official affiliation with DeepSeek / High-Flyer.
- Kernel Version Note: DSH kernel 0.1.2 removed the
settingsNamespace()runtime helper. This plugin uses a local inline constant when registering the settings namespace, maintaining compatibility with both older kernels (≤ 0.1.1) and newer kernels (0.1.2-alpha.3). - Module Import Warning: Do not statically import
@deepseek-ai/*packages. When the host CLI is started vianode --import tsx/esm, bare imports of runtime symbols by external plugins may be redirected into the host’s source code. If the host side renames or removes a symbol, it can cause module instantiation errors. Type imports (import type) are not affected. - Sound Sample License: The built-in piano recordings come from Salamander Grand Piano V3 (licensed under CC BY 3.0). Attribution is required when using it.
Summary¶
dsh-pianist provides high-quality music interaction capabilities for the DSH Web UI through its deterministic timeline and realistic sample sound source. Whether using natural language to control playback or adjusting visual effects, it offers developers an intuitive and reproducible music testing and entertainment environment. For more details, refer to the project homepage or GitHub repository.