一瞥 / Glance(DSH 截图分析插件)
一个 DSH Desktop 本地插件:在主页面打开开关后,屏幕上出现一个置顶悬浮球;框选任意应用中的区域,截图会直接发给多模态模型,分析结果在悬浮面板里流式显示。
仓库:https://github.com/waterfish111/dsh-glance | 许可证:MIT | 更新日志:CHANGELOG.md
状态:
0.4.1,可用的早期版本(工作原型)。本轮重做了悬浮球外观(柔光立体 + 放大镜图标)、按 DPI 缩放,并支持换成自己的图片。
功能
- Harness 主页面开关,开启后出现始终置顶的悬浮球
- 悬浮球可拖到屏幕任意位置;外观支持自定义图片(面板标题栏的调色板按钮)
- 全屏冻结层 + 框选 HUD,框选时不闪屏
- WebView2 深色玻璃面板:截图预览、流式分析、补充说明、发送 / 重新框选
- 截图 + 备注直接发给多模态模型,不做 OCR
- 追问只发送文字,同一会话里继续对话,不重复上传截图
- 分析过程中可以「停止」中断本轮
- 专用会话「一瞥」保存完整历史
- 断网、超时、空回答等失败路径会在面板显示错误
环境要求
- Windows 10/11
- DSH Desktop(本地 profile 插件)
- Microsoft Edge WebView2 Runtime(Windows 11 通常自带;Windows 10 如缺失需安装)
- Windows PowerShell 5.1(
widget.ps1依赖,系统自带)
安装
把本目录放到任意位置(不要放在需要管理员权限的目录)。
用 DSH 的插件管理界面把这个目录作为本地插件安装。手动等价做法是在 profile 目录里把它加成链接依赖,并确认加载列表里有它:
dsh plugin --profile desktop add 'link:D:/dsh/dsh-glance'然后打开
%USERPROFILE%\.dsh\profiles\desktop\package.json,确认dsh.profile.bundles数组里包含"@local/dsh-glance"(没有就手动加一行)。只写进 dependencies 不会加载,bundles 才是实际的层列表。重启 DSH Desktop;主页面右上角出现「一瞥」开关。
卸载:
dsh plugin --profile desktop remove @local/dsh-glance,并从dsh.profile.bundles里删掉那一行。
使用
- 打开开关,屏幕上出现悬浮球。
- 点击悬浮球,拖动框选要分析的屏幕区域。
- 面板中确认截图,可填写补充说明(例如“检查这道题”“解释这个报错”)。
- 点击「发送」,分析结果会流式显示在「分析结果」区域;此时按钮变成「追问」,并出现「停止」。
- 继续输入并点「追问」只会发送文字,截图不会重复上传;需要重新取画面时点「重新框选」。
- 关闭:在 Harness 主页面关闭开关;面板右上角 × 只收起面板,悬浮球保留。
- 换外观:点面板标题栏的调色板按钮,选一张图片(建议 PNG、带透明背景、512×512 以上;也支持 WebP / BMP / JPG)作为悬浮球;按钮变成 ↺ 后可一键恢复默认外观。
目录结构
index.js— Host 半:命令、会话、启动/停止小部件、图片 prompt、sessionController.follow流式回传client.js— Web 半:主页面开关widget.ps1— 原生小部件:悬浮球、冻结框选、WebView2 面板宿主、stdin 读取panel.html— WebView2 面板页面(HTML/CSS/JS)webview2/— vendored WebView2 SDK(Core / WinForms / Loader,Microsoft 许可见webview2/LICENSE.txt)cordis.patch.yml、package.json— DSH bundle 声明locale/、icon.svg— 文案与图标CHANGELOG.md、LICENSE、.gitattributes— 版本记录、MIT 许可证、换行约定(*.ps1固定 CRLF 检出,避免 BOM/换行被改坏)backup/(未入库)— 历史样式备份与截图
已知限制
- 面板只显示当前一轮的回答,不是多轮记录列表;多轮历史完整保存在 DSH 的「一瞥」会话里。
- 「停止」只中断本机的等待与流式接收,不会撤回已经进入模型队列的消息;被中断的这一轮在会话里可能仍然存在。
- 发送失败会自动重试一次;重试会再发一遍同样的内容,模型侧可能收到重复提问。
- 分析会话若在 DSH 里被删除,会自动新建并在面板顶部提示,但旧上下文不再保留。
- 运行时状态文件在
%LOCALAPPDATA%\dsh-glance\state.json;首次运行会从插件目录的state.json迁移,迁移后旧文件可以删除。 - 开关状态只在点击时同步;悬浮球被外部结束时开关可能仍显示开启。
- 专用会话默认模型必须支持图片输入,否则发送会失败(面板会显示错误)。
- 首次使用依赖 WebView2 Runtime;缺失时会弹出提示并给出安装地址,安装后需要重新打开开关。
- 自定义外观只做等比缩放,图片不是正方形时四周会留空;原图小于 128×128 会被放大变糊。
- 自定义外观不区分悬停态,「分析中」的进度环仍然会画在图片外侧。
- 仅支持 Windows / DSH Desktop。
隐私
- 截图只会发送到 DSH 中配置的模型服务商;插件不向其他服务上传。
- 自定义外观图片会复制到
%LOCALAPPDATA%\dsh-glance\ball.png,仅在本机保存。 - DSH 专用会话会保存截图与对话历史;插件本体不额外落盘截图(
-SelfTest自测模式除外)。 - 屏幕捕获只在你主动框选时发生,不会后台持续截屏。
版本
完整历史见 CHANGELOG.md。
0.4.1— 悬浮球重做:柔光立体外观 + 白色放大镜图标,尺寸按系统 DPI 缩放(此前固定 84 物理像素,高缩放下偏小);支持上传自己的图片作为悬浮球外观,可一键恢复默认;面板改为贴在悬浮球左侧(放不下时依次退到球下、球上),不再被悬浮球挡住右上角的关闭按钮。0.4.0— 追问与首次发送分离(不再重传截图);新增「停止」;会话失效与重建时在面板提示;状态文件移到%LOCALAPPDATA%\dsh-glance\;删除约 250 行死代码;WebView2 缺失时弹窗提示安装;面板宽高统一按 DPI 换算(宽度限制在 440–560 DIP,不再随截图变宽),窄面板下输入框与按钮分行排列,预览图按面板宽度铺满。0.3.0— 改名「一瞥 / Glance」;WebView2 面板、流式分析、断网错误、通用化截图分析。
第三方
WebView2 SDK 版权与许可见 webview2/LICENSE.txt。本仓库自身代码以 MIT 许可证发布,见 LICENSE。
No comments yet. Be the first to write one.