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 /music command 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, and shade, 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 ypm CLI. 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.