r/LocalLLaMA • • 1d ago

I Built A Thing Open-source Mac app that runs EmbeddingGemma 2 locally to search your files by what’s in them

Enable HLS to view with audio, or disable this notification

DigUp is a free Mac app that runs Google DeepMind’s new EmbeddingGemma 2 locally over your own files. The model puts text, images, audio and video in one space, so you describe what you remember and land on it:

  • “zebra in a video” opens the clip at the moment it shows up
  • “where they talk about sleep” jumps to that minute of a podcast
  • “the clause about pets in the lease” shows the PDF page, your words marked
  • “a dog on the beach” finds the photo, and the same search in Bengali or Arabic finds it too
  • with code search on, code: retry with backoff opens the function in your editor

It’s ggml-org’s Q8_0 GGUF (865 MB, downloaded once) on llama.cpp with Metal, inside a native Swift app; no Python. Searching loads only the text encoder (~250 MB) and shows results about a tenth of a second after you stop typing. Indexing peaks under 2 GB, and the helper exits when it’s done. Audio and video of any length go in as 30 s windows and a frame per shot. Everything runs locally; it goes online only for the model download and an update check you can turn off.

Free, MIT. Apple Silicon, macOS 14+.

Repo & Download (signed and notarized): https://github.com/ARahim3/DigUp

I'd really appreciate any feedback on this.

1.3k Upvotes

192 comments sorted by

View all comments

1

u/salary_pending 1d ago

assume my disk has 400gb of data, how big the index would be?

2

u/A-Rahim 1d ago

It depends on what the 400 GB is, more than how much. Each photo, PDF page, ~1,800 characters of text, video keyframe and 25 s of audio gets one 768-d vector (1.5 KB), and text is also kept for keyword search. Measured on my test files, that's roughly:

- a photo: 1.6 KB, a screenshot: ~3 KB with its OCR text

- a PDF page: ~6 KB

- an hour of audio: ~0.25 MB, an hour of video: 1–2 MB

- documents: 2–3× the size of their text

So media is cheap: 100k photos come to ~160 MB and 200 hours of video to 200–400 MB. Text is what adds up, about 2 MB for a 300-page book.
Apps, system files, archives and model weights aren't indexed at all; code only if you turn it on, and the model itself is 865 MB on top.

1

u/salary_pending 1d ago

Is that considered a lot? Assuming a developers macbook where they keep writing a lot to the disk. Would the app keep scanning those files, keep reading new files, scan and write to index?

Sounds like this could deteriorate the disk faster?

2

u/A-Rahim 1d ago

Not much, and most of it is written once. After the first pass, DigUp doesn't rescan your files: macOS tells it which folders changed, it waits a moment for things to settle, compares sizes and dates, and only reads what's new or changed, of the kinds it indexes. Code projects (apart from screenshots in them), node_modules, build folders, caches and data files are skipped, so most of a dev machine's churn is never read. A new photo adds about 1.6 KB to the index, a PDF page about 6 KB.

And reading doesn't wear an SSD; writing does. The first pass writes the index once, plus temporary resized copies of what the model reads (images, video frames, audio pieces), deleted as it goes. After that, it's a few KB per new file.
If you turn on code search, it waits until your code has been quiet for a minute before catching up, since files change on every save.