dsh-radio:在 DSH Web GUI 对话区边工作边听的网络电台

前言

在 DeepSeek Harness(DSH)里写提示、盯轮次和 token 时,不少人会另开浏览器或播放器放背景音。那样窗口来回切,和当前会话也脱节。社区插件 dsh-radio(包名 dsh-plugin-radio)把网络电台收进 Web GUI:一条约 24px 的胶囊嵌在 composer 状态行,与轮次、token 等状态并排,点一次即可出声,切台、音量、曲目信息都在同一套界面里完成。

下面按定位、能力、安装与日常操作说明;事实以仓库 README 与 package.json 为准。

这是什么

  • 仓库:CXZAAA/dsh-radio
  • 维护者:CXZAAA
  • 分类:联网工具(社区目录 SkillHub 条目)
  • 许可证:MIT
  • 当前版本(package.json):0.1.2
  • 一句话:Ambient internet radio for the DeepSeek-Harness Web GUI——在 DSH Web GUI 里边工作边听的网络电台。

插件分客户端与宿主两侧:客户端通过 slots 注入状态行 UI;宿主侧注册只读路由,供 Radio Paradise 曲目信息代理。安装包内带 cordis.patch.yml,会在插件页自动加入 Loader 并默认启用,一般无需手改组合包配置。

核心功能

预置电台(7 台)

电台 来源 流
ChillSynth Nightride FM MP3 320
Nightride Nightride FM MP3 320
Darksynth Nightride FM MP3 320
Spacesynth Nightride FM MP3 320
Main Mix Radio Paradise AAC 320
Mellow Mix Radio Paradise AAC 128
EVE Radio GamingNow / EVE Radio MP3 256

全部为浏览器直放的渐进式流,无 HLS,也不需要音频代理。

播放与体验

  • 切台时先停旧流再起新流,避免叠音;主地址失败会静默尝试备用地址一次,12 秒内仍无声音才算失败。
  • 只预热一条流(上次听的台),点击播放时复用同一音频元素,尽量缩短首声延迟。
  • 使用 AnalyserNode 做频谱:胶囊收起态 28 根小方柱,面板内 56 根频谱带。
  • 曲目:Nightride 直读 Icecast;Radio Paradise 走宿主只读路由;面板显示「歌手 — 曲名」。EVE Radio 的 Icecast 无有效 title,不显示曲目。
  • 上次电台、音量、静音与设置保存在浏览器 localStorage。
  • UI 仅使用 --dsw-* 主题变量,明暗主题均可;彩色主要用于频谱柱与失败态。

v0.1 范围

不支持自定义电台;入口仅在对话面板可见(切到其他主面板时胶囊消失,播放不中断)。

安装与启用

插件以当前 DSH 进程权限运行,安装前建议浏览仓库源码并确认 MIT 许可证与网络行为是否符合你的环境。

推荐:在 DSH 里直接装

  1. 侧边栏打开 插件 → 添加插件。
  2. 粘贴仓库地址并安装:
https://github.com/CXZAAA/dsh-radio
  1. 若提示 restart-required,重启 Web 服务后再刷新页面:
sudo systemctl restart dsh-web

包内已声明组合包 patch,插件页会自动加好 Loader 行并默认启用。

若曾用旧脚本安装过同名插件,可先移除再装,避免 cordis.patch.yml 重复插入:

dsh plugin --profile web remove dsh-plugin-radio

并删除 ~/.dsh/profiles/web/cordis.patch.yml 末尾 # dsh-radio (managed by install-local.sh) 一段(若存在)。

可选:pnpm git 安装(README 注明未在 CI 中验证;github: 简写默认走 SSH,无 key 可能卡住,需用 git+https://):

dsh plugin --profile web add "git+https://github.com/CXZAAA/dsh-radio.git"

之后需手动在 ~/.dsh/profiles/web/cordis.patch.yml 追加 Loader 段(见仓库 README「其他安装方式与卸载」),并重启 dsh-web。

卸载

dsh plugin --profile web remove dsh-plugin-radio

删除对应 id: radio 的 patch 段后重启 dsh-web。

典型用法

安装并刷新后,在 composer 状态行找到电台胶囊,可按 README 操作表使用:

操作 结果
点胶囊左端 播放 / 暂停(失败时变为重试)
点「下一台」 切到下一台,7 台循环
点台名 向上弹出面板
面板里点某台 切换到该台;点当前台为暂停 / 恢复
面板右上角齿轮 系统媒体键、频谱样式、是否记住上次电台
面板底部 左侧播放 / 下一台,右侧静音与音量滑杆
Esc 关闭面板

适合长时间在 DSH Web 里对话、编排智能体时放 ambient 电子或 Radio Paradise 类背景流,且希望控制条与当前页面同屏的场景。

适用场景与注意

适合谁

  • 已在用 DSH Web GUI、希望少开一个外部播放器标签的用户。
  • 能接受固定 7 台预置源、不需要自建电台列表的 v0.1 能力边界。

已知限制(仓库 README)

  • 切到轨迹等非对话主面板时入口消失,播放继续。
  • EVE Radio 备用流为 http://;DSH 若跑在 HTTPS 下,混合内容策略可能拦截备用地址。
  • Nightride 无低码率 MP3,移动网络下首声更依赖预缓冲。
  • Radio Paradise 曲目依赖宿主侧小路由;修改宿主相关代码后需重启 dsh 才生效。
  • 不支持自定义电台。

社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系;DSH 生态是「一切皆插件」,本插件为社区维护的联网工具类扩展。

结尾

dsh-radio 把 Nightride FM、Radio Paradise、EVE Radio 共 7 路网络流收进 composer 状态行,用胶囊 + 面板完成播放、切台、频谱与曲目展示,状态落在浏览器本地。若要在 DSH 里试装,可从目录页或 GitHub 进入仓库,按上文推荐步骤添加插件并视提示重启 dsh-web。

  • 目录页:https://www.skillhub.cn/plugins/CXZAAA/dsh-radio
  • GitHub:https://github.com/CXZAAA/dsh-radio
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜