king-bcolor
dsh-ncm-plugin
No description
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
dsh-ncm-plugin
中文文档:README.zh-CN.md
A DeepSeek Harness plugin that wraps the ncm-cli NetEase Cloud Music command-line tool as model-callable tools.
What it is
dsh-ncm-plugin exposes NetEase Cloud Music CLI capabilities to DSH agents: account status, playlists, songs, lyrics, playable URLs, daily recommendations, play records, search, and playlist management/cleanup — all through structured, JSON-backed tools.
Features
- Account: login status, current user, version.
- Playlists: list/show/create/add/remove/rename/tags/desc/delete.
- Playlist tidy: inspect, filter, diff, apply, move, duplicates.
- Songs: metadata, lyrics, playable URL resolution, desktop playback.
- Discovery: daily recommendations, weekly/all play records.
- Search: suggestions, songs, playlists.
- Safe by default: destructive writes require explicit confirmation.
- JSON-first output for agents, readable text rendering for the UI.
- Built-in Web Settings panel: every tool is exposed as an auto-generated form (account, playlists, tidy, search, song/lyric/URL, recommendations).
Use cases
- Ask the agent "what's in my playlist 490155105?"
- Search for songs and add them to a playlist.
- Clean up duplicate songs in a large playlist.
- Look up lyrics and playable URLs.
- Check daily recommendations and play history.
See docs/用例目录/README.md for the full command/use-case/parameter catalog (Chinese).
Installation
Preconditions
- Node.js 22+,
dshCLI installed (npx @deepseek-ai/dsh web). - No preinstalled
ncmCLI is required. The plugin auto-downloads the platform release binary into$DSH_HOME/binon first tool run, or when you click Install/update ncm in the UI. Download order:ghfast.top→gh-proxy.com→ GitHub official, so mainland-China networks use mirrors first. Playwright driver downloads usenpmmirror.comby default.
Install from GitHub
Install into the web profile so the browser UI is available:
dsh plugin --profile web add github:king-bcolor/dsh-ncm-plugin
# This package has no prepare/build step, so no pnpm build permission is needed.
For headless/agent-only use, install into a headless profile the same way.
Install from local checkout
git clone https://github.com/king-bcolor/dsh-ncm-plugin.git
cd dsh-ncm-plugin
dsh plugin --profile web add .
Usage
Start the browser UI:
dsh web
The first tool call downloads ncm automatically; you can also open Settings → NetEase Cloud Music and click Install/update ncm, then Log in to NetEase Cloud Music. Open Settings → NetEase Cloud Music. The panel exposes every ncm tool as a form: account status, playlist browse/manage, tidy, search, song/lyric/URL, recommendations, and records. Results are shown as readable text with a raw JSON toggle.
You can still ask the agent in the same web session:
# example prompts
Use ncm_me to check my NetEase Cloud Music login.
Search NetEase Cloud Music for the song "晴天" and show the first 5 results.
Configuration
# profile cordis.patch.yml or plugin row config
- id: ncm
name: dsh-ncm-plugin
config:
ncmBin: ncm
ncmInstallDir: $DSH_HOME/bin
configDir: $DSH_HOME/ncm-config
autoInstall: true
ncmDownloadBaseUrl: https://ghfast.top/https://github.com/Davied-H/ncm-cli/releases/latest/download
playwrightDownloadHost: https://npmmirror.com/mirrors/playwright
timeoutMs: 30000
confirmWrites: true
Development
TDD is mandatory for this project. The workspace is plain ESM JavaScript with
node:test; there is no build step:
npm test # red first, then implement until green
Local checkout quick start (no system ncm required):
./setup.sh
./start.sh
This creates a writable .dsh-home, bootstraps ncm into
.dsh-home/bin, installs the plugin into the web profile, and starts the UI.
License
MIT