DigUp 发布 Mac 本地文件搜索工具,基于 Google DeepMind 的 EmbeddingGemma 2
Search files on your Mac with Google DeepMind's EmbeddingGemma 2
DigUp 发布 Mac 本地文件搜索工具,基于 Google DeepMind 2026 年 10 月发布的多模态嵌入模型 EmbeddingGemma 2,用自然语言描述即可按内容检索图片、PDF、文档、音视频和代码。
描述它。把它挖出来。
借助 Google DeepMind 的
EmbeddingGemma 2,按文件内容搜索你 Mac 上的文件。
下载 Mac 版 · Apple 芯片, macOS 14 或更高版本 · 免费且开源
EmbeddingGemma 2 是 Google DeepMind 于 2026 年 10 月发布的多模态嵌入模型。它把文本、图像、 音频和视频放进同一个共享空间:一张沙滩上狗狗的照片会落在“沙滩上的一只狗”这句话旁边,一段 谈论睡眠的录音会落在“他们谈论睡眠的地方”旁边。它理解 100 多种 语言,是开放的(Apache 2.0),而且 740M 参数的规模小到足以在笔记本电脑上轻松运行。
DigUp 把这一切带到你 Mac 上的文件中。选择要搜索的文件夹,它就会读取其中的图片、PDF、文档、 录音和视频。然后用你自己的话描述你在找什么,它就能找到匹配项, 无论是什么类型的文件。这一切都在你的 Mac 上完成。
你能找到什么
- “视频里的斑马”会打开斑马出现的那一刻的片段
- “他们谈论睡眠的地方”会跳到播客的那一分钟
- “租约中关于宠物的条款”会显示 PDF 页面,并标出那些文字
- “沙滩上的一只狗”能找到那张照片,而“付款被拒错误”能找到那张截图
- 用英语搜索可以找到用孟加拉语、阿拉伯语或该模型支持的 100 多种语言写成的笔记,反过来 也一样
- “code: retry a failed call with backoff”会在你的项目中找到那个函数,前提是你开启代码搜索
精确的字词也算数。发票号码、错误代码和名称会按原样匹配,无论是在文件名、文档文本 还是截图内的文字中,所以一次搜索既能得到含义,也能得到精确字符串。
私密
你索引的任何内容都不会离开你的 Mac。DigUp 只在首次下载模型和每天检查一次更新时 联网。更新检查不会发送任何关于你文件的信息,而且你可以关掉它。没有账户,没有遥测。
安装
- 从 Releases 下载 DMG,把 DigUp 拖到 Applications,或者使用
Homebrew:
brew install --cask arahim3/tap/digup。 - 打开它。在模型下载期间(865 MB,仅一次),选择要搜索的文件夹:整个文件夹,或只选其中的 部分子文件夹。DigUp 会显示每个文件夹首次扫描需要多长时间。
- 在任何应用中按 ⇧⌘Space,描述你在找什么。
DigUp 需要一台搭载 Apple 芯片、运行 macOS 14 或更高版本的 Mac(已在 macOS 26 上测试),并且它会 自动保持更新。
使用它
| 按键 | 作用 |
|---|---|
| ⇧⌘Space | 从任何应用打开搜索面板(你可以在设置中更改) |
| ↓ ↑ | 在结果之间移动 |
| ↩ | 打开结果:视频和录音跳到那一刻,PDF 在 Preview 的搜索中显示你的词,代码在你的编辑器中跳到那一行 |
| Space | 快速查看,显示那一页或那一刻(在你移动到某个结果之后) |
| ⌘↩ | 在 Finder 中显示 |
| ⌘C | 复制文件,以便粘贴到任何地方 |
| ⌘O | 在更大的窗口中执行同样的搜索,带有图片网格和筛选器 |
DigUp 驻留在菜单栏中,你可以在那里查看索引进度、暂停它,或打开设置。第一次 视频在对应时刻打开时,macOS 会询问 DigUp 是否可以控制 QuickTime Player;它就是这样跳过去的。
它读取什么
只读取你选择的文件夹:
- 图片和截图(HEIC、JPEG、PNG、RAW、WebP 等),按其显示的内容,截图也按其文字
- PDF,逐页读取,包括扫描件。很长的 PDF 会先处理前 30 页,其余的在其他所有 内容都处理完后处理(每个文件最多 5,000 页)
- documents: txt、md、rtf、doc、docx、odt、html,长文件也一样。以数字为主的内容,比如数据 export,只按精确文本匹配
- 任意长度的音频:模型一次听 30 秒,所以 DigUp 采用重叠的 30 秒窗口,匹配结果指向其对应时刻
- 任意长度的视频:每隔几秒取一帧,每个镜头一帧,外加与音频相同方式处理的音轨
在你为代码搜索选定的文件夹之外,它从不读取代码,而在代码项目(包含 .git、
package.json 等文件的文件夹)内,它只读取截图。它从不读取密钥、证书、密码文件、像 ~/.ssh 这样的隐藏
文件夹、应用包或缓存。它会跳过看起来像数据集的文件夹,也从不下载仅存在于云端的 iCloud
文件。你可以在设置中跳过更多文件夹或文件类型。DigUp 只读取你的文件;
它从不更改、移动或上传它们。
第一遍处理几百个文件需要几分钟,处理一个大的下载文件夹可能需要一小时。这 只发生一次,用电池时也会进行,除非你让它等到接上充电器,并且在低电量模式下会暂停。之后,一个 新文件落地后一两秒即可被搜索到。
代码
EmbeddingGemma 2 也能读取代码,所以 DigUp 可以搜索你的项目。代码搜索默认关闭,直到你在
设置 → 代码中或设置过程中为你选定的文件夹开启它。每个仓库都会显示读取它需要多长时间以及
其索引需要多少空间。然后用 code: 开始搜索,说出代码的功能,或输入其中包含的名称:
- "code: retry a failed call with backoff" 会找到那个函数,无论它叫什么名字
- "code: refreshAccessToken" 会跳到定义它的那一行,而不是调用它的地方
- "code: plot how many examples each class has" 会找到那个 notebook 单元格
结果会在你的编辑器中打开并定位到该行:Zed、VS Code、Cursor、Xcode、Sublime Text、JetBrains IDE 以及更多 (在设置中选择一个)。代码有自己独立的索引,从不出现在其他搜索中。DigUp 读取源文件、 notebook(不含其输出)以及仓库自带的文档。它会跳过 git 忽略的内容、第三方和生成的代码、数据 文件,以及任何看起来像密钥或密码的东西。当你在处理代码时,索引会在一切安静下来一分钟后 跟上进度。
读取代码对于一个小型应用大约需要 20 秒,而对于整个 llama.cpp 大约需要 20 分钟和 130 MB 的索引。
工作原理
your folders ─► readers (ImageIO, PDFKit, AVFoundation, and Vision for the text in screenshots)
─► EmbeddingGemma 2 on llama.cpp (Metal), in a helper process that quits when it's done
─► one SQLite file: a vector for every picture, page, passage, video frame and 30 s of sound,
plus a keyword index (code search keeps a second one, for code)
your words ─► the same model's text part (~250 MB, only while you search) ─► nearest vectors + exact words
DigUp 通过 llama.cpp 在 Mac 的 GPU 上运行 ggml-org 的 8 位版 EmbeddingGemma 2。每个向量都位于同一个 768 维空间中,这就是为什么一次查询可以将一个视频帧 与一个 PDF 页面进行排序比较。一次搜索会在几毫秒内嵌入你的文字,并将它们与索引中的所有内容进行比较。 精确词匹配会获得加权,因为没有任何嵌入能精确表示一个发票号码。
索引会记住其向量是由哪个模型版本生成的。不改变向量的更新会保留你的 索引,并且每次 llama.cpp 更新在发布前都会用存储的参考向量进行测试。
从源码构建
你需要 Xcode 26、git 和 CMake(或 uv)来构建 llama.cpp。如果 xcode-select -p 显示的是 Command Line Tools,
请先切换到 Xcode(sudo xcode-select -s /Applications/Xcode.app):它们缺少构建所需的 SwiftUI 和 Swift Testing
宏。
git clone https://github.com/ARahim3/DigUp && cd DigUp scripts/build-llama.sh # llama.cpp at a pinned tag, with a one-line patch (a few minutes) swift build -c release && swift test ./build.sh # → build.noindex/DigUp.app
还有一个命令行工具 .build/release/digup,可以在终端中建立索引、搜索和运行评估
(digup --help)。scripts/make-testbed.sh 会构建一个测试文件文件夹供你试用(它需要 ffmpeg),而 evals/
保存着用于衡量排名变化的查询。
FAQ
这和 Spotlight 有什么不同? Spotlight 按文件名、文本和元数据查找文件。DigUp 还能按文件展示或讲述的内容来查找,并直接带你到对应的页面或时刻。两者可以很好地并存。
为什么下载有 865 MB?那是模型:文本部分(310 MB)加上图像和音频编码器(555 MB)。应用本身大约 20 MB。
它会让我的 Mac 变慢吗?只有第一遍处理比较吃资源。之后它只读取新文件。模型在单独的进程中运行,完成后就会退出,搜索部分只在你搜索时加载。
支持哪些语言?该模型掌握 100 多种语言,DigUp 可以用所有这些语言搜索,还能跨语言搜索。评测只覆盖英语、孟加拉语和阿拉伯语,因为这些是 DigUp 测试所用文件的语言,而且 Google 指出该模型并非在每种语言上都同样出色。有两项限制针对的是精确词,而非含义:截图中的文字由 Apple 的文本识别读取,它认识约 25 种语言;而像中文、日文和泰文这类不用空格分隔的语言,不会被切分成词。
如何卸载它?先退出,然后删除 DigUp.app 和 ~/Library/Application Support/DigUp,后者存放模型和索引。它的设置位于 ~/Library/Preferences/com.abdurrahim.DigUp.plist。使用 Homebrew 时,brew uninstall --cask --zap digup 可将其全部移除。
谢谢
DigUp 基于 Google DeepMind 的 EmbeddingGemma 2(Apache 2.0)、llama.cpp(MIT)和 Sparkle(MIT)构建。它们的许可声明随应用一同发布,位于 DigUp.app/Contents/Resources/Acknowledgements.txt。
DigUp 与 Google 或 Apple 无关联。Gemma 是 Google LLC 的商标;Mac 和 Spotlight 是 Apple Inc. 的商标。
许可证
MIT
来源:Hacker News · github.com

