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
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 restartdsh web.
Or run the command directly:
dsh plugin --profile web add github:hey-ruomei/dsh-music-player && dsh web
No
preparebuild 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:
| Tool | What it does |
|---|---|
music_search | Search Audius, returns top 5 tracks (title / artist / duration / id) |
music_play | Play a track by trackId, or the top match of a query |
music_control | pause / resume / next / prev / set_volume (0–1) |
music_status | Report 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_controlreturn 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-playerper 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