Back to home@hey-ruomei

dsh-music-player

DeepSeek Harness 音乐播放器插件:搜索/播放 Audius 免费曲库,支持收藏、迷你播放条和 agent 对话遥控 | Music player plugin for DSH web: stream legal music from Audius, favorites, mini player, agent chat control.

Stars
0
Language
TypeScript
Created
Aug 19, 2026
Updated
Aug 19, 2026
GitHub repo

Introduction

dsh-music-player

English | 中文

A music player plugin for DeepSeek Harness (dsh) web profile: search and stream music from Audius (a legal, free, open music platform), right inside the dsh web UI — and control it from the agent chat.

⚡ One-line install

Feed this to your AI (any AI with command execution will do, no explanation needed):

Install dsh-music-player: run dsh plugin --profile web add github:hey-ruomei/dsh-music-player, then restart dsh web.

Or run the command directly:

dsh plugin --profile web add github:hey-ruomei/dsh-music-player && dsh web

No prepare build script; lib/ ships prebuilt, so git installs need zero extra build steps. Restart dsh after installing.

Features

  • Sidebar entry — a music button above Settings in the left sidebar opens the player panel
  • Search the Audius library — debounced search over hundreds of thousands of free tracks
  • Trending — browse the Audius trending chart without searching
  • Favorites — heart any track; stored in localStorage, survives restarts
  • Play queue — click any row in Search / Trending / Favorites to start playing from it
  • Mini player bar — closing the panel keeps music playing; a floating bar in the bottom-right corner keeps controls handy
  • Agent remote control — four agent tools let you drive the player from chat:
ToolWhat it does
music_searchSearch Audius, returns top 5 tracks (title / artist / duration / id)
music_playPlay a track by trackId, or the top match of a query
music_controlpause / resume / next / prev / set_volume (0–1)
music_statusReport what's currently playing

Just say "play some jazz" in the chat — the agent searches, queues, and your browser starts playing.

Notes

  • The dsh web page must be open for playback (audio plays in the browser). If the page is closed, music_play / music_control return a clear error instead of silently queueing.
  • Audius is a decentralized upload platform: some tracks may fail to stream because their content node is down or the upload was removed. The player skips to the next track on failure and stops after 3 consecutive failures.
  • All Audius requests carry app_name=dsh-music-player per the API's terms.

Architecture

agent chat ── tools ──▶ node half (/api/music command queue + status heartbeat)
                            ▲ poll 1.5s / report 3s
browser client ◀────────────┘  module-level <audio> + PlayerStore

Built entirely on official mechanisms (bundle layer stack + webServer routes + dsh.client slots) — no patches to official packages. Node half is ESM; client half is CJS wrapped in the window.__ModuleLoader__.load contract.

Develop / rebuild from source

pnpm install    # tsdown / react / vitest
pnpm build      # emits lib/index.mjs + lib/index.js
pnpm test       # vitest unit tests

tsdown.config.ts is self-contained (no official monorepo preset).

License

MIT — Copyright (c) 2026 hey-ruomei