dsh-client-deep-sneak:agent 干活时,在 DSH Web 右下角小窗摸鱼看 B 站

前言

用 DeepSeek Harness(DSH)跑一个长任务,常见的状态是:agent 在后台干活,你不知道它什么时候会停下来要权限、要答案,于是只能盯着会话页面干等。想切走干点别的,又怕错过提醒,回来还得翻上下文。

dsh-client-deep-sneak 把这个问题换了一种解法:它在 DSH Web 页面右下角放一个 B 站小窗,你看视频等结果;agent 一旦需要你,视频自动暂停并弹出提醒,处理完回来从原位置精确续播。下面介绍这个插件的功能、安装和典型用法。

这是什么

dsh-client-deep-sneak(项目名 DeepSneak)是一个 DSH Web 平台的 client 插件,由 Rain-Shuoyu 维护,当前版本 v0.12.0,许可证为 MIT。它解决的问题很具体:让「等 agent 干活」的时间可以拿来看 B 站,同时不丢 agent 的状态感知。

环境要求:

  • DeepSeek Harness (DSH) Web 平台
  • Node.js ≥ 18

核心功能

播放与内容

  • 首页推荐流:B 站真实推荐流,免登录,点任意卡片进入播放
  • 原生播放器:拖动进度、倍速、进度可控
  • 滚动弹幕与播放同步,弹幕层为插件自绘的轻量实现,支持滚动、顶部、底部三种样式,可调颜色与字号
  • 评论区浏览:位于播放页下方,支持加载更多
  • 相关推荐:横滑换片,播放不中断
  • 关键词视频搜索:结果带时长、播放量、弹幕数,支持分页
  • 观看历史:本地记录最多 50 条,未看完的从上次进度续播,看完的下次从头播

agent 联动

这是插件区别于普通网页播放器的部分。它通过会话快照(useSessions)实时感知 agent 状态,覆盖四类事件:完成、阻塞、权限请求、提问。触发时视频自动暂停,叠加半透明蒙版并弹出 Toast 提醒;看板上还有状态徽标,显示工作中、空闲或需要你。

暂停的实现方式是:提醒时对 <video> 执行 pause(),元素保持挂载、进度不丢;点「继续看视频」后执行 play(),从原位置恢复播放。

摸鱼辅助

  • 摸鱼统计:今日、本周、累计、近 7 天四个维度,只统计播放中的时间
  • 白天 / 黑夜双主题一键切换
  • 主题、弹幕开关、评论开关等偏好自动保存到 localStorage

安装与启用

一键安装:在 DSH 部署目录(含 cordis.yml 的 profile,例如 ~/.dsh/profiles/web)执行:

dsh plugin --profile web add dsh-client-deep-sneak

如果装了 dsh-market,也可以在设置 → 插件市场里搜索 DeepSneak 一键安装。

手动安装分三步。第一步,在部署目录安装依赖:

cd ~/.dsh/profiles/web
npm install dsh-client-deep-sneak

第二步,编辑该目录下的 cordis.patch.yml,追加 insert 条目:

- insert:
    - id: deep-sneak
      name: dsh-client-deep-sneak

第三步,重启 DSH Web:

npx @deepseek-ai/dsh web

刷新页面,右下角即出现 DeepSneak 小窗。插件无需任何配置,安装即用。

典型用法

1、打开首页推荐流,点任意卡片,原生播放器自动播放,弹幕同步滚动。

2、想看指定内容时,在看板顶部搜索框输入关键词,结果卡片带时长、播放量、弹幕数,可翻页。

3、让 agent 开始干活,一边看视频一边等。

4、agent 需要你时,视频自动暂停并出现半透明蒙版提醒。点「回到对话」去处理。

5、处理完点「继续看视频」,从原位置精确续播。

6、标题栏可切换昼夜主题,查看今日、本周、累计摸鱼时长。

7、点观看历史入口查看最近 50 条记录,未看完的从上次进度继续。

工作原理

插件分两半工作。Client 半区跑在 DSH Web 页面里,负责右下角小窗、推荐流、播放器和自绘弹幕层;Host 半区提供三条同源代理路由,仅用于拉取 B 站公开内容:

/dsh-bili/api     JSON(推荐 / 播放 / 评论)
/dsh-bili/dm      弹幕 XML(gzip 解压)
/dsh-bili/media   视频流(Range 支持拖动续播)

摸鱼统计累计的是真实播放时长,本地持久化。观看历史进度只存在当前浏览器的 localStorage,暂停、切视频和每 30 秒各落盘一次;播完后进度归零但记录保留,下次从头播放。所有数据都在本地,不上传任何数据。

适用场景与注意

适合的场景:你经常在 DSH 里跑需要等待的长任务,想要一个不打断工作流的摸鱼窗口,同时不丢 agent 的状态感知。

使用前有几点需要知道:

  • 画质最高只有 720p,这是 B 站对未登录 API 的限制。需要高清画质或完整弹幕功能,建议同时使用 B 站网页版。
  • 弹幕是插件自绘的轻量弹幕层,不是 B 站 iframe,样式偏极简。这样做是为了保证「精确续播」——不依赖 iframe 才能在暂停后无损恢复播放进度。
  • 不支持抖音:www.douyin.com 返回 X-Frame-Options: DENY 加 CSP 白名单,无法 iframe 嵌入,其 API 也需要签名鉴权。
  • 路线图上还有未完成项,比如摸鱼目标提醒、弹幕密度与字号速度调节。

安全提醒:插件以当前 dsh 进程的权限运行,安装前建议检查源码与许可证。该项目源码和 MIT 许可证在 GitHub 上公开可查,客户端 bundle 为纯手写 JavaScript,无需构建步骤,阅读成本不高。

结尾

dsh-client-deep-sneak 做的事情不复杂,但把两件事咬合得很紧:B 站小窗负责填等待时间,会话快照负责在你被需要时把你拉回来。如果你日常工作流里长任务占比高,可以试一试。

  • 插件目录页:https://www.skillhub.cn/plugins/Rain-Shuoyu/dsh-client-deep-sneak
  • GitHub 仓库:https://github.com/Rain-Shuoyu/dsh-client-deep-sneak
羽毛球分组比赛记分
小程序二维码

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

小夜