SAOS-3624/dsh-see-now
AI 工程把屏幕、摄像头或视频按画面变化筛选并拼成一张图交给视觉模型,静止画面几乎不产生 token 开销。
项目介绍
See Now 是给 DSH 用的实时视觉插件,把屏幕、摄像头或视频文件变成一串按变化量筛选过的画面,再拼成一张 PNG 交给模型。核心问题是成本:定时截全屏会产生大量重复画面,间隔太久又会漏掉中间发生的事情。
它给每帧打一个 0–255 的变化分,在 64×36 的 HSV 网格上计算,约 0.2ms 一帧;只有画面突然切换或持续运动攒够积分时才留下这一帧,留下的帧拼进同一张图。静止屏幕几乎不出图,20 秒给一张兜底帧;滚动网页、切换窗口时大约 15 秒一张;硬切幻灯片每切一次留一帧。按宿主 DeepSeek-V4 的 patch 网格,800×450 一张约 233 token,一张图里放 4 帧还是 8 帧价格相同,所以多留一帧几乎不增加成本。
包本身不依赖 DSH,capture、pipeline、png 都是独立导出的,也可以当普通 Node 库用。
安装到 DSH
插件已发布到 npm,用 DSH 自带的 dsh plugin 安装:
dsh plugin --profile web add dsh-see-now
桌面版把 web 换成 desktop,该 profile 需要先打开过一次桌面端才会初始化。装完重启 DSH 生效,因为插件树在进程启动时组合。卸载和升级把 add 换成 remove 或 update。
从源码安装(改代码时用):
git clone https://github.com/SAOS-3624/dsh-see-now.git
cd dsh-see-now
node scripts/install-dev.mjs
install-dev 是复制而不是软链,因为 Node 解析裸包名要走真实路径,否则找不到宿主的 @deepseek-ai/dsh-tools。装完同样要重启 DSH。
悬浮窗关掉后,用 npx dsh-see-window 重新打开;--status 查看状态,--force 杀掉重开,--close 关闭。
让模型调用
安装后模型调用工具:
see_now({ action: "watch" }) // 阻塞到攒够一张图,然后交回
see_now({ action: "watch", say: "…" }) // 同时说一句话
第一次调用约 1 秒返回当前屏幕,之后返回这段时间里发生的事。say 是唯一会出现在悬浮窗并被念出来的通道。
主要参数:quality 控制分辨率(low 为 800×450,还有 standard、high、ultra),改动会重启采集,约 0.6 秒后立刻返回当前这一帧;pace 分 calm、normal、dense,决定换画面门槛和最长唤醒间隔;scene 开启逐场景模式,每换一次画面单独出一张满幅图,粘性生效直到 scene:false 或停止;seconds 是 watch 的阻塞上限,默认 300、封顶 860;minFrames 小于该帧数就不出图;source / path / realtime 选择屏幕、摄像头或视频文件。
作为普通 Node 库使用
从 dsh-see-now/capture 导入 spawnFrames 产出帧,从 dsh-see-now/pipeline 导入 createPipeline 做打分、筛选和拼图;p.take() 返回一张 PNG 以及每帧的时间戳、档位和来源。README 给出了定时把每张图写到磁盘的示例。
使用约束
- Windows 使用
ddagrab,不行自动退回gdigrab。 - macOS 使用
avfoundation,需要在系统设置里给运行 DSH 的 App 勾上屏幕录制权限。没给权限时不会报错,只是全黑;插件会探测平均像素并在start返回里提示。 - Linux 尚未接入,会直接报错而不是假装能用,后续要补
x11grab或 PipeWire。 - ffmpeg 不用进 PATH,插件依次查找
DSH_FFMPEG_PATH、FFMPEG_PATH、DSH_FFMPEG_DIR、~/.dsh/tools/ffmpeg/bin、~/.dsh/bin。 - 变化判断只看画面,不看语义:内容不同但长得很像的页面可能被判为没变;除
dupMin粗筛外没有跨帧去重。 - 唤醒受
pace节流,语音播报串行,更快的间隔只会排队。 - 不内置 TTS,只有在
~/.dsh/voice.json配置适配器后say才会被念出来,macOS 可参考examples/voice-say-mac.mjs。 - 调试窗位于
debug/,不进 npm 包也不进插件。 - 协议为 Apache-2.0,允许商用、闭源和再分发,保留 LICENSE 与 NOTICE 即可。
HotRepo 点评
在 2026-11-02 的 JavaScript 新项目榜上,See Now 记录到 111 Star 和 5 Fork,统计窗口从 2026-11-01 开始,这是它第一个被跟踪的日期。只有单次快照,能说明的只是上线初期就获得了关注,还谈不上趋势。
更值得看的是它的 token 账:README 按宿主 patch 网格算出 800×450 一张约 233 token,而一张图里塞 4 到 8 帧价格一样——省下来的成本主要来自筛选,而不是拼图本身。局限也同样具体:变化打分区分不了版式相近但文字不同的两页。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。