让 Agent 弹一曲真钢琴:Salamander Grand 真实采样音色,Canvas2D 三角钢琴与沉浸式舞台渲染,88 键可弹。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-pianist
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Laplace-bit/dsh-pianist
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
dsh-pianist 为 DeepSeek Harness(dsh)Web UI 带来一台会弹琴的 Agent:写代码累了,让 AI 弹一曲放松;它弹得多好,就是模型的本事。是玩具,也是考卷。
项目主页:https://laplace-bit.github.io/dsh-pianist/
效果
点上面封面看演奏短片(docs/showreel.mp4),或者到在线 Demo 点一曲,听实时渲染。
它弹起来什么样
- 音色来自 Salamander Grand Piano V3 的真实录音采样,六层力度、键释放、弦共振、踏板动作都有,不是合成器那种"哔哔"声。
- 两套皮肤随时切:曜黑鎏金,黑色高光三角琴配暖金内饰,落键泛金光;樱花珍珠,珍珠白琴身、玫瑰金细节,头顶一片樱色天光。
- 全屏沉浸式舞台里有瀑布音符、水光倒影、流星和薄雾,跟着演奏起伏。
- 88 个键都能弹:鼠标滑奏、电脑键盘、方向键选音,想自己上手也行。
- 底层是一条确定性时间轴。暂停、拖动、重播,同一份乐谱每一次都分毫不差。所以它能当考卷用:模型会不会弹琴,一弹便知。
安装
在 DeepSeek Harness 源码仓库里:
pnpm dsh plugin --profile web add dsh-pianist
如果 PATH 上已经有 dsh:
dsh plugin --profile web add dsh-pianist
npm 包自带构建产物,装完就能用。
然后启动界面:
pnpm dsh web
卸载:pnpm dsh plugin --profile web remove dsh-pianist(或 dsh plugin --profile web remove dsh-pianist)。
内核兼容性
| DSH 内核 | 本插件支持情况 |
|---|---|
| 0.1.0-rc.5 ~ 0.1.0-rc.7 | ✅ 全部版本 |
| 0.1.1-rc.2 | ✅ 全部版本 |
| 0.1.2-alpha.1 ~ 0.1.2-alpha.3 | ✅ 0.1.0(含 2026-09-01 兼容修复的构建);此前发布版在 0.1.2 上加载失败 |
- ✅ = 兼容。
0.1.2-alpha.3为当前宿主内核,已实测(产物导入 + 测试套件);其余内核按双内核兼容设计支持(同一份构建、同一 API 面)。 - 0.1.2 起内核移除了
settingsNamespace()运行时助手(≤ 0.1.1 上它只是个校验恒等函数,0.1.2 仅保留同名类型)。本插件不静态导入该符号,而是在注册设置命名空间时本地内联常量并断言为SettingsNamespace类型,新旧内核通用。 - 当前构建不再静态导入
settingsNamespace();此前发布版仅在 ≤ 0.1.1 内核上可用,请重新构建或更新至含修复的版本。 - 不要对
@deepseek-ai/*包的运行时符号做静态导入。宿主 CLI 经node --import tsx/esm启动,tsx 会应用宿主tsconfig的paths映射,外部插件对@deepseek-ai/*的裸导入可能被重定向进宿主源码,一旦宿主侧改名/删符号就会以模块实例化错误的形式炸掉启动。类型导入(import type)不受影响。
使用
装好后直接用自然语言点歌,Agent 会把整段乐谱交给钢琴:
请弹一下《欢乐颂》前八小节,双手都要,带延音踏板。
来一段 C 大调音阶,100 BPM,放慢一点。
即兴来首轻快的小曲子,放松一下。
浏览器可能要先手动点一次播放按钮才出声,这是浏览器的自动播放限制,属正常现象。
在 Settings -> Plugins -> Pianist 卡片里可以随时调整:
- 启用/停用插件,切换皮肤(曜黑鎏金 / 樱花珍珠);
- 沉浸式舞台或聊天卡片两种形态,演奏结束后自动回到卡片;
- 画质(低/中/高)、音量、瀑布音符、踏板与粒子特效开关。
改完保存即生效。
许可证
插件代码 MIT。内置钢琴录音来自 Salamander Grand Piano V3(CC BY 3.0),署名见 THIRD_PARTY_NOTICES.md。
独立网页可通过 npm 引入并注册 Web Component:
import { registerDshPianoView } from 'dsh-pianist/demo';
registerDshPianoView();
// <dsh-piano-view> 提供 setScore / setPianistSettings / play / pause /
// seek / setRate / requestImmersive 等公开 API。
设置卡片经由 settings.plugin.item 注册于 Settings -> Plugins。本地预览落地页
docs/index.html:pnpm run build && pnpm dlx serve .。
链接
同类插件
PolinniZhong/dsh-omi-voice★ 76
DeepSeek Harness 对话内朗读:点一下即可朗读、暂停、继续 AI 回复,豆包 TTS 自然音色(BYOK),只读最终回答并过滤代码、表格与图形,本地引擎,插件零 Key。
PensiveFei/dsh-voice-scribe★ 36
面向 Web UI 的语音输入插件:点按 Alt(或 Alt+空格)开始/停止听写,支持浏览器内置 Web Speech(零配置)或 OpenAI 兼容云端 ASR,可选经 DSH 已配置模型润色,带设置页。
beiyege-01/dsh-voice-ai-girlfriend-plugin★ 32
Web UI 语音 AI 女友:FunASR 麦克风语音输入、Qwen3-TTS 语音回复、数字人动画窗、QQ 双向聊天(文本/语音/图片推送,经 NapCat)。
1624318455/dsh-plugin-tts★ 25
用免费 Edge TTS 或你自己的 RVC 音色朗读 AI 回复:消息朗读与自动朗读、长文自适应分块渐进播放(无缝衔接)、音色包仓库一键安装、便携 RVC 运行时。
ppy-web/dsh-plugin-xiaomi-mimo-tts★ 25
为 DSH Web 添加 Xiaomi MiMo 语音朗读,支持助手消息朗读、PCM 流式播放、预置与自定义音色、浏览器语音兜底、播放控制和可选 UI 音效。
WizisCool/dsh-ears★ 24
面向 DeepSeek Harness (dsh) 的语音输入插件:输入框的麦克风按钮把语音转成草稿文本,支持多种语音识别后端,可选经 dsh 自有 LLM 路由润色,并带原生设置页。

社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。