Introduction¶
DeepSeek Harness (DSH) supports extending functionality through plugins. In the Web profile, developers often need to switch between conversations and listening to music, which can interrupt the workflow. The dsh-music plugin solves this problem by directly integrating QQ Music and providing a floating player in the Web interface, allowing users to control music playback while conversing.
Plugin Introduction¶
dsh-music is an open-source plugin (MIT License) maintained by user 1608kiy. It does not depend on external frontend frameworks, resolves cross-origin issues through a host-side proxy, and provides QR-code login to QQ Music accounts.
Core Features¶
- Floating player and interaction: The player uses a dark frosted-glass effect and supports expand/collapse animations. The card in the bottom-right corner can be dragged freely and remembers its position while playing. The album cover rotates during playback. After the mouse leaves for 5 seconds, the player automatically collapses into a small vinyl disc ring and snaps automatically when close to the screen edge.
- Quick controls and state memory: Supports keyboard shortcuts (space to pause/play, left/right arrows to switch songs). The plugin automatically remembers the queue, volume, and loop mode, and restores them after restart. It provides 128k and 320k audio quality options.
- Minimization and plugin management: The player can be collapsed via the top-right corner into a small corner ring (the album cover continues rotating, while double-click or triple-click controls song switching). The plugin can be disabled or enabled in settings.
- QQ Music integration and login: Supports playback through official vkey parsing, with Meting as the fallback. It provides a polished QR-code login page, stores credentials locally, and after login allows users to unlock VIP song playback and import “My Favorites” and personal playlists.
- Agent integration: Includes a built-in
musictool, allowing the player to be controlled via conversational commands (such as “Play a song,” “Pause,” and “Set volume to 50%”) without requiring manual UI clicks. - Default library configuration: Supports configuring the default QQ Music playlist ID to load via the environment variable
DSH_MUSIC_PLAYLIST.
Installation and Configuration¶
- Download the plugin package to a local path.
- Use the DSH CLI to install the plugin:
dsh plugin --profile web add "file:/path/to/dsh-music"
- Restart the DeepSeek Harness Web application after installation.
- Optional configuration: Set the environment variable
DSH_MUSIC_PLAYLISTto a QQ Music playlist ID to automatically load it as the built-in library at startup.
Usage¶
- Control the player: Click the bottom-right card to expand the player, then drag the top to move its position. It automatically collapses after the mouse leaves for 5 seconds.
- Search and import: Enter a song name or artist in the player search box and press Enter to search, or paste a QQ Music playlist link or ID to import it.
- Shortcut control: Use space outside the input box to pause/play, and use the left/right arrows to switch songs.
- Agent commands: Issue commands directly to the model, such as “Play a song,” “Pause,” and “Set volume to 50%.”
- Manage the plugin: Manage the enabled/disabled status in Settings → Plugins → Plugin Configuration.
Notes¶
- This project is unrelated to DeepSeek and Tencent QQ Music. Audio is provided by public endpoints and third-party parsing services, for learning and research only.
- Songs restricted by copyright or permissions may not play; the player will skip them automatically.
- Login credentials are stored only in the local DSH instance and are used to make requests to QQ Music endpoints.
- The
musictool and UI operations are completed within the local DSH instance, with no persistent synchronization.
Summary¶
dsh-music integrates QQ Music endpoints and the Agent tool, providing DSH Web users with a lightweight music playback solution. It supports local credential storage, playback resumption, and keyboard shortcut control, making it suitable for developers who need to manage conversations and background music simultaneously.