█

AI/TLDR

DigUp

An on-device Mac app that finds photos, PDFs, recordings, videos and code by what is in them, using Google DeepMind's EmbeddingGemma 2

Rerank, Search & HybridOpen source
Latest
v0.6.0
Updated
9 Oct 2026
Language
Swift
License
MIT
$brew install --cask arahim3/tap/digup

What's new

v0.6.09 Oct 2026

First public release of DigUp, a Mac search app built on EmbeddingGemma 2 that finds files by what they show or say.

Overview

DigUp search panel with the query "zebra in a video", listing a matching video and two photos, with a preview of zebras and a button to open the video at 0:42
"zebra in a video" finds the clip and the moment the zebra appearsDigUp README ↗

DigUp is a free, open-source (MIT) search app for Apple Silicon Macs, written in Swift. You pick the folders to search, it reads the pictures, PDFs, documents, recordings and videos in them, and you then describe what you are looking for in your own words: "zebra in a video" opens the clip at the moment the zebra appears, "where they talk about sleep" jumps to that minute of a podcast, and "the clause about pets in the lease" opens the PDF page with the words marked. Its first public release, 0.6.0, shipped in October 2026.

It is built on EmbeddingGemma 2, Google DeepMind's open multimodal embedding model, which puts text, images, audio and video into one shared vector space and covers more than 100 languages. That shared space is why one query can rank a video frame against a PDF page, and why a search in English can find a note written in Bengali or Arabic. DigUp runs ggml-org's 8-bit build of the model through llama.cpp on the Mac's GPU, in a helper process that quits when indexing is done.

Every picture, PDF page, text passage, video frame and 30-second window of audio becomes a vector in one SQLite file, alongside a keyword index, so exact strings such as invoice numbers and error codes are matched as written and get a boost over pure meaning. Nothing indexed leaves the Mac: DigUp goes online only to download the model once (865 MB) and for a daily update check that can be turned off, with no account and no telemetry. An optional code search indexes chosen repositories separately and opens results in your editor at the line.

What it does

DigUp search panel with the query "where they talk about sleep" matching a podcast MP3 and playing it from 7:55
An audio match plays from the minute where the topic comes upDigUp README ↗
  • Natural-language search across photos, screenshots, PDFs (including scans), documents, audio and video of any length, opening each result at the matching page or moment
  • Multilingual and cross-language search through EmbeddingGemma 2's 100+ languages
  • Hybrid ranking: semantic vectors plus a keyword index for exact names, codes and numbers, including text inside screenshots
  • Opt-in code search with a `code:` prefix that finds functions by what they do and opens them at the line in Zed, VS Code, Cursor, Xcode, JetBrains IDEs and others
  • Runs fully on-device with llama.cpp on Metal; one SQLite index; no account or telemetry
  • Global ⇧⌘Space search panel, Quick Look at the page or moment, a menu-bar indexer you can pause, and a `digup` command-line tool for indexing, search and evals

Getting started

DigUp needs an Apple Silicon Mac with macOS 14 or later. These steps follow the project's README.

Install the app

Download the DMG from the GitHub Releases page and drag DigUp to Applications, or install it with Homebrew.

bashbash
brew install --cask arahim3/tap/digup

Pick folders while the model downloads

On first launch DigUp downloads EmbeddingGemma 2 once (865 MB). Meanwhile, choose whole folders or only some of their subfolders; DigUp shows how long the first pass will take for each. After that first pass, new files become searchable a second or two after they land.

Search from any app

Press ⇧⌘Space and describe what you are looking for. Use the arrow keys to move through results, ↩ to open at the page, moment or line, Space for Quick Look, ⌘↩ to show it in Finder, and ⌘O for a larger window with a picture grid and filters.

Turn on code search (optional)

In Settings → Code, choose the repositories to index. Then start a query with `code:` and describe what the code does, or type a name that appears in it.

texttext
code: retry a failed call with backoff
code: refreshAccessToken

Build from source

You need Xcode 26, git and CMake (or uv). The build script compiles a pinned llama.cpp; the release build also produces the `digup` command-line tool.

bashbash
git clone https://github.com/ARahim3/DigUp && cd DigUp
scripts/build-llama.sh
swift build -c release && swift test
./build.sh

.build/release/digup --help

Commands and code are distilled from the project's own documentation — always check the official repo for the latest.

When to use it

DigUp search panel with an Arabic query for a dog on the beach, returning beach photos of dogs, a video and a dog-barking recording
A query in Arabic finds photos, a video and a recordingDigUp README ↗
  • Find a photo, screenshot or scanned document when you remember what it showed but not its name
  • Jump to the minute of a podcast, lecture or meeting recording where a topic came up
  • Search a personal archive written in several languages with a query in just one of them
  • Locate a function across your projects by describing what it does
  • Keep semantic search over private files entirely offline on your own Mac

How DigUp compares

DigUp alongside other open-source rerank, search & hybrid tools AI/TLDR tracks, ranked by GitHub stars.

ToolStarsWhat it does
Elasticsearch★ 78.4kDistributed search and analytics engine with a built-in vector database for dense/sparse embeddings and hybrid keyword-plus-semantic retrieval.
Meilisearch Cloud★ 59.6kManaged cloud for the Meilisearch engine, combining fast full-text search with hybrid, semantic, and multimodal vector search.
Typesense Cloud★ 27kManaged hosting for the Typesense search engine, offering typo-tolerant keyword search plus vector and semantic search via a simple API.
Tantivy★ 16.3kA fast full-text search engine library in Rust that provides BM25 keyword search for the lexical half of hybrid retrieval.
FlagEmbedding★ 12.3kBAAI's retrieval toolkit that provides the BGE embedding and cross-encoder reranker models used widely in RAG pipelines.
Vespa★ 7.1kA search and serving engine that natively combines vector, keyword (BM25), and structured search with built-in ranking for large-scale retrieval.
DigUp★ 5.7kAn on-device Mac app that finds photos, PDFs, recordings, videos and code by what is in them, using Google DeepMind's EmbeddingGemma 2
RAGatouille★ 4kA wrapper that makes it easy to train and use ColBERT late-interaction retrieval inside RAG pipelines.