Glimpse:在 Windows 上按文字或外观查找任意截图
Show HN: Glimpse – Find any screenshot on Windows by its text or how it looks
作者发布 Windows 本地截图检索工具 Glimpse,按 Win+Alt+S 后输入记得的字母即可定位截图,也可用 network diagram 这类描述按外观搜索。
通过截图中的文字——或它的外观——找到任意截图。
按 Win+Alt+S,输入你记得见过的几个字母,它就在那里。
你截下了那条错误信息、那张网络图、那张收据。你记得里面有什么,而不是它叫什么或什么时候截的。Glimpse 会读取你文件夹中的每一张图片,所以你只需输入你记得的内容:"moca"、"invoice 2024"、"in:notes network"。或者描述它——"network diagram"、"dark dashboard"——它就能找到看起来像那样的图片,即使没有匹配的文字。
- 图片中的文字:每张截图、照片和图表都用 Windows 内置的 OCR 读取;任意 3 个字母的片段都能匹配,匹配到的词会在预览中高亮标出
- 按外观搜索:在你的 GPU(或 CPU)上运行的 CLIP 模型能理解图片展示的内容; Ctrl+M 可找到与所选图片相似的图片
- 取走你找到的内容:Ctrl+C 复制图片,Ctrl+Shift+T 复制其中的文字
- 随时待命:驻留在托盘中,新截图一出现就建立索引,并可接入 PowerToys Command Palette
- 私密:不上传任何内容,无需账户,无遥测
数据一览
在一台笔记本电脑(Core i9-10980HK、RTX 2080 Super Max-Q)上测得,已索引 10,038 张图片 (截图、笔记附件、下载):
| 文字搜索 | 中位数 1.8 ms |
| 按外观搜索(视觉) | 中位数 21 ms——其中大部分是用 CLIP 编码你的查询 |
| 文字 + 视觉一起(默认) | 中位数 27 ms |
| "更多类似内容" | 中位数 1.9 ms,覆盖约 1 万张图片 |
| 从图片中读取文字 | 约 64 张图片/秒(9,284 张用时 2 分 25 秒,8 个工作线程) |
| 视觉索引 | GPU 上约 95 张图片/秒(9,246 张用时 1 分 37 秒) |
| 索引大小 | 每张图片约 10 KB(1 万张图片为 99 MB,含文字 + 词框 + 视觉向量) |
| 内存 | 加载视觉搜索后驻留托盘时约 250 MB |
| 下载 | 92 MB,无需安装其他任何东西 |
搜索耗时是引擎在热索引下的表现;运行 glimpse-cli bench 来测量你自己的机器。
试一试
从 Releases 下载 Glimpse-<version>-win-x64.zip,解压后双击
Install.cmd。测试版尚未代码签名,因此 Windows 可能会提示 "Windows 已保护你的电脑":
点击 更多信息 → 仍要运行。一个简短的欢迎界面会让你选择文件夹,并(可选)下载
视觉搜索模型;然后按 Win+Alt+S。
- 仅为你当前用户安装(
%LOCALAPPDATA%\Programs\Glimpse),无需管理员权限,无需安装 .NET - Windows 10 1809+ / Windows 11,x64;DirectX 12 GPU 可加速视觉搜索,但并非必需
- 从设置 → 应用 → 已安装的应用卸载(是否保留索引由你决定)
- 任何内容都不会离开你的电脑;唯一的网络访问是可选的视觉模型下载
- 可选:
Glimpse-CmdPal-<version>-win-x64.zip将 Glimpse 添加到 PowerToys Command Palette(需要开发者模式)
工作原理
OCR 是 Windows 内置的引擎(Windows.Media.Ocr)。索引是 SQLite:一个使用
trigram 分词器的 FTS5 表(因此任意 3 个及以上字符的片段都能匹配词中任意位置),加上 CLIP ViT-B/16 图像
嵌入,在内存中用 SIMD 进行比较。结果先合并精确文字命中,然后松散文字和视觉
匹配交错排列(倒数排名融合)。灵感来自 Linux 上的 gyotaku。
src/Glimpse.Core OCR, SQLite index, incremental indexer, folder watcher
src/Glimpse.Cli `glimpse-cli` command: index / embed / model / search / ocr / stats / sources
src/Glimpse.App WinUI 3 search window (unpackaged, Mica, global hotkey, tray, pipe server)
src/Glimpse.CmdPal PowerToys Command Palette extension (MSIX, talks to the app over a named pipe)
从源码安装
pwsh scripts/install.ps1 # Release build → %LOCALAPPDATA%\Programs\Glimpse, start with Windows, launch in tray pwsh scripts/install.ps1 -NoAutoStart # same, without the login entry
重新运行以更新。Glimpse 驻留在托盘中:左键单击切换窗口,右键单击显示 立即重建索引 / 设置 / 退出。X 按钮隐藏到托盘。 再次启动它只会调出正在运行的副本。Windows 11 将新的托盘图标放在 ^ 溢出区域中; 将其拖到任务栏上以保持可见。
开发
dotnet build src/Glimpse.App src/Glimpse.App/bin/x64/Debug/net9.0-windows10.0.19041.0/win-x64/Glimpse.exe # window src/Glimpse.App/bin/x64/Debug/net9.0-windows10.0.19041.0/win-x64/Glimpse.exe --hidden # background, hotkey only dotnet run --project src/Glimpse.Cli -- index # all sources dotnet run --project src/Glimpse.Cli -- search moca
应用在启动时建立索引(仅新建/更改的文件),然后监视这些文件夹。
视觉搜索
除了 OCR 文本外,每张图像都使用 CLIP ViT-B/16(ONNX,通过 DirectML 在 GPU 上运行,CPU 回退)进行嵌入,因此你可以根据图像的外观进行搜索:“网络图”、“条形图”、“深色仪表板”。在 RTX 2080 上处理 9k 张图像大约需要 1.5 分钟。
结果是混合的:精确文本匹配(单词查询,或按输入顺序的单词组合)排在最前面,然后是
松散文本匹配和视觉匹配交错排列(倒数排名融合)。视觉匹配带有
“≈ 看起来像”徽章。视觉切换(Ctrl+T)或 ~ 前缀 = 仅视觉。Ctrl+M = 更像
选中的图像。
该模型是一次性约 392 MB 的下载(设置 → 视觉搜索 → 下载,或 glimpse-cli model)
到 %LOCALAPPDATA%\Glimpse\models\clip-vit-b16,支持可恢复、大小检查的文件。没有它,视觉
搜索就关闭了。应用在每次 OCR 处理后嵌入新图像;从 CLI 运行 glimpse-cli embed。
命令面板
src/Glimpse.CmdPal 是一个 PowerToys 命令面板
扩展:在面板中(Win+Alt+Space)输入 Glimpse,即可获得带有详细信息窗格的实时缩略图网格。
Enter 打开,Ctrl+Enter 复制图像,Ctrl+Shift+T 复制其文本,Ctrl+K 用于复制路径 / 在文件夹中显示 / 更多类似项 /
在 Glimpse 中打开。筛选器下拉菜单可切换到仅视觉。在面板主页输入 3 个以上字符
还会在回退项下提供 搜索图像“…”。
pwsh scripts/install-cmdpal.ps1 # build + register (needs Developer Mode, no signing) pwsh scripts/install-cmdpal.ps1 -Uninstall
提示:在命令面板 → 设置 → 扩展 → Glimpse 中为其设置别名(例如 ss),然后
ss moca 直接跳转到结果。(每个命令都有一个稳定的 ID,因此别名和固定项在更新后仍然有效。)
如何协同工作:该扩展是一个 MSIX 打包的 COM 服务器(这就是面板加载
扩展的方式)。它本身不打开索引;它通过每用户命名
管道(Glimpse.Core/Ipc/GlimpseIpc.cs,编译到两者中)询问正在运行的 Glimpse 应用。应用从其热搜索引擎
回答,并包含 256px 缩略图作为字节,因为打包应用获得 AppData 的虚拟化视图,
无法按路径读取缩略图缓存。
搜索语法
| 查询 | 含义 |
|---|---|
moca network |
两个片段都出现(文本或文件名),加上视觉匹配 |
~network diagram |
仅视觉(与视觉切换相同) |
like:1234 |
看起来像图像 1234 的图像(Ctrl+M) |
"network map" |
精确短语 |
in:notes |
源名称前缀(in:screen = 两个截图文件夹) |
after:2026-05 |
修改于/之后(也 2026 或 2026-05-14) |
before:2026-06-15 |
修改于之前 |
按键
Win+Alt+S 切换 · Enter 打开 · Ctrl+C 复制图像 · Ctrl+Shift+T 复制文本 · Ctrl+Shift+C 复制路径 · Ctrl+E 在文件夹中显示 · Ctrl+T 仅视觉 · Ctrl+M 更多类似项 · Ctrl+, 设置 · Esc 清除 / 隐藏 · Ctrl+Q 退出
设置
托盘 → 设置,搜索栏中的齿轮,或 Ctrl+,。更改立即生效,无需重启:
- 键盘快捷键:修饰键 + 键,实时检查 Windows 和其他应用已使用的组合
- 随 Windows 启动
- 文件夹:添加(文件夹选择器)、移除、重命名(名称是
in:匹配的内容)、包含子文件夹。 移除或重命名文件夹会将其图像从索引中移除;文件永远不会被修改 - 视觉搜索:开/关,模型下载/删除并显示进度,GPU 开/关
- 索引:OneDrive 仅在线文件、并行工作线程、索引统计、立即重新索引、重建、缩略图缓存大小 + 清除
- 关于:版本、数据文件夹、日志
首次运行默认使用 Windows 的 屏幕截图 和 下载 已知文件夹(跟随 OneDrive 备份或重定位)。所有内容都存储在 %LOCALAPPDATA%\Glimpse(config.json、index.db、models\、thumbs\、glimpse.log)。
发布
pwsh packaging/build-release.ps1 -Version 0.5.0 # local: artifacts\*.zip + SHA256SUMS.txt git tag v0.5.0; git push origin v0.5.0 # CI: builds the same zips and publishes a GitHub release
带后缀(v0.6.0-beta.1)的标签会作为预发布版本发布。Actions → Release → Run workflow 会将 zip 构建为工件而不发布。发布说明从 packaging/release-notes.md 开始。
许可证
MIT,参见 LICENSE。捆绑组件及其许可证:THIRD-PARTY-NOTICES.md。
路线图
- 视觉搜索(通过 ONNX 的 CLIP 嵌入)——“网络图”、“深色仪表盘”
- 托盘图标 + 随 Windows 启动
- 命令面板扩展(
ss moca) - 设置页面(文件夹、热键、视觉模型下载、索引)
- 复制文本(Ctrl+Shift+T,也可在命令面板中使用)
- GitHub 发布:自包含 zip、每用户安装程序/卸载程序
- 代码签名(SmartScreen)、用于命令面板扩展的已签名 MSIX、自动更新
- 首次运行欢迎:选择文件夹、提供视觉模型、显示快捷键
- 仅剪贴板截图(Win+Shift+S 不自动保存)
- OCR + 嵌入多个 GIF 帧,而不仅仅是第一帧
来源:Hacker News · github.com

