DigUp: A Mac Semantic Search Tool Running EmbeddingGemma 2 Locally

DigUp lets Mac users search local files by describing their content using EmbeddingGemma 2 — fully on-device.
DigUp is an open-source local semantic search tool for Apple Silicon Macs, powered by Google DeepMind's EmbeddingGemma 2 multimodal embedding model. It encodes text, images, audio, and video into a shared vector space, letting users locate files by describing content in natural language — no file names needed — with multilingual support. Built with llama.cpp, Metal acceleration, and native Swift (no Python required), it returns results in ~0.1 seconds with indexing memory capped under 2 GB. Free under MIT license, though performance claims are currently developer-reported and await broader validation.
Find Your Files by What You Remember, Not What You Named Them
Traditional desktop search relies on exact matches of file names and keywords — but people typically remember files by their content, not their titles. DigUp, an open-source Mac app, flips this around: you describe what you remember, and it finds the file and pinpoints the exact location.
Built on Google DeepMind's newly released EmbeddingGemma 2 model, DigUp runs entirely on-device. Its core capability is mapping text, images, audio, and video into a shared vector space, enabling users to search across media types using natural language descriptions of any content.

Cross-Modal Semantic Search
What makes DigUp particularly compelling is how it handles different media types. According to the developer's Reddit post, a few typical use cases illustrate the logic:
- Search "zebra in the video" and the app opens the video and jumps to the moment the zebra appears;
- Search "where they talked about sleep" and it navigates to the exact minute in a podcast;
- Search "pet clause in the lease" and it surfaces the relevant page in a PDF with your keyword highlighted;
- Search "dog on a beach" to find matching photos — and the same query in Bengali or Arabic will also return results.
This kind of multilingual, multimodal unified search is precisely what embedding models like EmbeddingGemma 2 are designed for. Audio and video are segmented into 30-second windows with one frame sampled per shot, then encoded into the shared vector space. With code search enabled, queries like code: retry with backoff can even open the corresponding function directly in your editor.
The Real Value of Embedding Models
Embedding technology converts content into high-dimensional vectors, where semantically similar content sits closer together in the vector space. Unlike keyword matching, it understands meaning rather than just literal characters. DigUp brings this capability down to personal file management, turning semantic search from a cloud service into a local desktop tool.
EmbeddingGemma 2 is a multimodal embedding model from Google DeepMind — a lightweight branch of the Gemma family optimized for local deployment. Unlike general-purpose large language models, an embedding model's output isn't text; it's a fixed-dimensional vector representation. The key feature of EmbeddingGemma 2 is its "multimodal alignment": text, images, and audio frames are processed through their respective encoders and then projected into a single shared vector space. This means "a text description of a dog on a beach" and "a photo of a dog on a beach" will end up close together in that space, enabling cross-modal semantic matching. The approach is conceptually similar to the earlier CLIP model, but covers more modalities and has been trained at a larger scale with multilingual data.
Technical Implementation: Native Swift, No Python Required
From an engineering perspective, DigUp is refreshingly lean. It uses a Q8_0 GGUF quantized model from ggml-org (approximately 865 MB, downloaded once), running on llama.cpp with Metal acceleration, wrapped entirely in a native Swift app — no Python environment required.
The performance numbers are also worth noting. Only the text encoder (around 250 MB) is loaded during search, with results returned approximately 0.1 seconds after you stop typing. Peak memory during indexing stays under 2 GB, and the helper process exits automatically once indexing is complete — nothing lingers in the background.
Privacy and Offline-First Design
Full local execution is DigUp's core value proposition. The app only connects to the internet to download the model and check for updates — and update checks can be disabled manually. For users handling sensitive documents (contracts, personal photos, work files), keeping all data on-device is a meaningful security guarantee.
GGUF is the model file format used in the llama.cpp ecosystem, designed for efficient inference of large language models and embedding models on consumer hardware. Q8_0 is a quantization precision level that compresses model weights from 32-bit floats to 8-bit integers, dramatically reducing file size and memory usage while typically incurring less than 1% accuracy loss compared to FP32. Metal is Apple's low-level graphics and compute API; llama.cpp's Metal backend offloads matrix operations to the GPU, which is especially efficient on Apple Silicon's unified memory architecture — where CPU and GPU share the same memory pool. This is the underlying reason DigUp can achieve fast response times using only native Swift, without any dependency on Python or CUDA.
Who Is It For?
DigUp is completely free and open-source under the MIT license, signed and notarized, targeting Apple Silicon Macs running macOS 14 or later. The developer has actively solicited user feedback on Reddit, and both the project repository and download are publicly available (GitHub: ARahim3/DigUp).
For Mac users who have accumulated large collections of photos, recordings, videos, and documents — especially when they remember the content but not the file name — this kind of local semantic search tool offers a genuinely different organizational paradigm. It serves as both a proof-of-concept for lightweight embedding models like EmbeddingGemma 2 running at the edge, and a demonstration of the balance local AI applications can strike between privacy and practical utility.
One caveat: the performance figures and feature descriptions above come entirely from the developer's own account. Real-world retrieval accuracy and indexing performance at scale remain to be validated by a broader user base. That said, the technical direction — quantized models with Metal acceleration running multimodal embeddings on consumer Macs — is a viable and increasingly mature approach.
Related articles

Huberman's Rational Supplement Guide: A Five-Layer Health Framework and Scientific Decision-Making
Stanford neurobiology professor Huberman proposes a rational supplement framework: behavior and nutrition are the foundation, basic combination supplements serve as insurance, and sleep/hormonal/cognitive directions should stick to single-ingredient experiments. Omega-3 is the top single-ingredient choice, and melatonin is not recommended.

The Unsung Painter Behind Gilded Age Manhattan Interior Design
HN discussion highlights the painter behind Gilded Age Manhattan interiors: he created murals and decorative paintings but was long overlooked as his work was seen as architectural appendage.

Can AI Agents Be Socially Engineered? Understanding Prompt Injection and Tool Permission Risks
Through Invariant Lab's GitHub Issue injection and Brave's AI browser attack, this article analyzes how Prompt Injection induces AI Agents to perform unauthorized actions, and offers protection advice across three layers: least privilege, tool validation, and operation auditing.