In the TUI plugin ecosystem of DeepSeek Harness (DSH), integrating with third-party applications is a common requirement. While running YesPlayMusic TUI in dsh-TUI, users need a way to view playback status and control playback without interrupting the current terminal stream. The dsh-music-tui plugin solves this problem through a command interface and status bar integration.
This plugin provides dsh-TUI with control over YesPlayMusic TUI and display of the currently playing status. It works through the /music command and a top music bar component, without modifying the source code of DeepSeek Harness, dsh-TUI, or YesPlayMusic itself.
Core Features¶
The plugin mainly includes the following capabilities:
- Command control: Provides the
/musiccommand family for showing/hiding the music bar, viewing status, toggling play/pause, skipping tracks, and seeking progress. - Music bar display: Displays a small cover, track name, artist, real-time progress, real-time spectrum, and control buttons (previous/play-pause/next/close) above the prompt box.
- Kitty Graphics support: In terminals that support Kitty graphics, the cover is displayed as a smooth real image.
- Spectrum styles: Includes four built-in compact styles:
blocks,led,braille, andshade, and can follow YPM settings. - Rich status view fallback: In older host or narrow-screen environments, it automatically falls back to a one-time detailed display while retaining core control functionality.
Prerequisites¶
Before installation, ensure the environment meets the following requirements:
- Node.js:
^22.19 || >=24 - dsh-TUI: Version must be within
>=0.9.2 <0.11.0 - YesPlayMusic TUI and ypm CLI: The plugin controls playback through the public CLI, and real-time spectrum requires this version of support
Installation and Activation¶
The current version is v0.1.0. Clone the repository and install it using the following command:
git clone --branch v0.1.0 --depth 1 https://github.com/Nagi-ovo/dsh-music-tui.git && cd dsh-music-tui && pnpm install --frozen-lockfile && pnpm build && dsh plugin --profile dsh-tui add "$PWD"
After installation, the plugin loads its configuration. The music bar is hidden by default and must be invoked via a command.
Typical Usage¶
Interact using the /music command:
/music show: Open the music bar/music hide: Close the music bar/music status: Display track name, artist, album, and progress details once/music toggle: Toggle play/pause/music next: Play the next track/music prev: Play the previous track/music seek <seconds>: Jump to an absolute time in the track (for example,/music seek 90.5)
In fullscreen mode, the progress bar supports click-to-seek and drag preview; inline mode requires the seek command.
Configuration¶
The default configuration is written to cordis.patch.yml. The main items are as follows:
| Key | Default | Description |
|---|---|---|
executable |
ypm |
CLI name or absolute path |
showStatus |
true |
Whether to enable the music bar; setting this to false keeps command functionality only |
pollIntervalMs |
3000 |
Online status polling interval |
timeoutMs |
3000 |
Timeout for a single CLI call |
spectrumStyle |
follow |
Spectrum style: off / follow / blocks / led / braille / shade |
To override the configuration, write the complete configuration under the same id in the profile’s cordis.patch.yml.
Notes¶
- Dependency runtime: The plugin does not automatically start YesPlayMusic TUI. You must first start ypm in the background or in another terminal, then start DSH.
- Permission boundary: The plugin only calls the public
ypmCLI. It does not connect directly to a private Unix Socket, nor does it modify the source code of the host or target application. - Security and trust: The plugin runs with the current DSH process permissions. Source code and license (MIT) should be reviewed before installation.
- Status synchronization: Control results only return “sent” and do not automatically confirm playback completion. Re-read the status to confirm the final result.