Open-source project
ARahim3/DigUp avatar
ARahim3/DigUp

DigUp indexes photos, PDFs, audio and video into one embedding space, on your machine

Search your computer by what's in your files: photos, PDFs, documents, recordings, videos and code. On-device on Mac, Windows and Linux, built on Google DeepMind's EmbeddingGemma 2.

5,648 stars417 forksSwiftMIT

At a glance

What is it?
DigUp is a MIT licensed menu bar and tray app that lets you search local files by describing their contents, using Google DeepMind's EmbeddingGemma 2 so text, images, audio and video share one index. It suits people with years of unscattered files, and the 865 MB model download, the per-system shortcut work under Wayland and the explicit 5,000 page and 30 second audio limits are the constraints that matter.
Who is it for?
DigUp fits a Mac user with an Apple Silicon machine who has accumulated enough documents, recordings and screenshots that filename search no longer reaches them, and it is equally reasonable on Windows and Linux given the beta build ships as an installer and an AppImage.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Swift, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

One embedding space across photos, PDFs, podcasts and code

DigUp is built on EmbeddingGemma 2, a multimodal embedding model Google DeepMind released in October 2026 and made available under Apache 2.0. At 740M parameters the README describes it as small enough to run on a laptop, and its defining property is that text, images, audio and video land in one shared space. A photo of a dog on a beach sits next to the words describing a dog on a beach. A recording of someone talking about sleep sits next to a query about where they talk about sleep. The model handles more than 100 languages, so a query in English can surface a note written in Bengali or Arabic and the reverse also works.

Because the index is shared across modalities, one query works against every kind of file. The README lists what that looks like in practice: asking for a zebra in a video opens the clip at the moment the zebra appears, asking where they talk about sleep jumps to that minute of a podcast, and asking for the clause about pets in a lease shows the PDF page. Code search is a separate switch, and with it on, a query like retry a failed call with backoff finds the matching function and opens it in your editor at the line.

Exact strings are not thrown away in favour of meaning. Invoice numbers, error codes and names are matched as written, in file names and in document text, so a search returns both the semantic match and the literal hit. On a Mac that includes the text inside screenshots.

Install paths differ sharply between macOS, Windows and Linux

macOS has the finished path. The README offers the DMG from Releases with a drag to Applications, or a Homebrew cask:

sh
brew install --cask arahim3/tap/digup

The requirement is narrow and worth checking first: an Apple Silicon Mac on macOS 14 or later. There is no Intel Mac build mentioned.

Windows is the beta line. You download DigUp_x.y.z_x64-setup.exe from the v0.7.0-beta.1 release and run it; it installs for the current user with no admin rights. The README warns that Windows will not recognise the app because the installer is unsigned, and the path through the warning is More info, then Run anyway. The requirement is 64-bit Windows 10 or 11.

Linux has two forms. On Ubuntu, Debian, Mint and similar distributions the .deb installs with apt:

sh
sudo apt install ./DigUp_x.y.z_amd64.deb

The package is named dig-up rather than digup because Debian already ships an unrelated package with that name, which is the kind of detail worth knowing before you search for the file. Elsewhere you take the AppImage, make it executable and run it. Both Linux builds target 64-bit Intel and AMD processors and are stated to work on Ubuntu 22.04, Debian 12, Mint 21 and newer.

The first pass downloads 865 MB and estimates itself per folder

On first launch the model downloads once, at 865 MB, and DigUp goes online for that and for a daily update check. Nothing about your files goes out, the update check is configurable, and there is no account and no telemetry.

While the download runs you pick what to index: whole folders, or only some subfolders inside them. DigUp measures the first pass on your own machine and shows how long each folder will take, which is the practical answer to whether you should point it at a drive of scanned documents.

After that the search panel opens from anywhere with Shift+Cmd+Space on Mac or Ctrl+Shift+Space on Windows and Linux, and the app itself sits in the menu bar or the tray, where indexing progress, a pause control and Settings are all reachable. The README notes that the shortcut can be changed.

Updates differ by platform in one specific way: the Mac app, the Windows installer and the AppImage update with one click, while the.deb install only tells you a new version exists and opens the release page.

What gets read depends on file type, and the limits are explicit

DigUp only reads the folders you choose, and its handling of long content is the part most worth understanding. PDFs are indexed page by page, scans included, and a long document gets its first 30 pages immediately with the rest indexed once everything else is done, up to 5,000 pages per file.

Audio of any length is handled by listening to 30 seconds at a time, taking overlapping windows, so a match points at its moment rather than at the file. Video works the same way for the soundtrack and samples one frame per shot, a frame every few seconds.

Documents cover txt, md, rtf, docx, odt, html and, on a Mac, doc, with long files following the same early-pages-first pattern. The exception is explicit and easy to be caught by: text that is mostly numbers, such as a data export, is matched by its exact text only and gets no semantic treatment.

The privacy claim is scoped just as precisely, and the scoping is the useful part. Outside the folders you pick for code search, DigUp never reads code, and inside a code project, identified as a folder with .git or package.json and similar, it reads only screenshots. It never reads keys, certificates, password files, hidden folders such as .ssh, apps or caches.

Opening results lands on the page or the moment, if the viewer allows it

Results open in place rather than from the top. On a Mac a video opens at its moment in QuickTime Player or IINA, and a PDF opens in Preview with your search words pre-filled into Preview's own search. macOS asks once whether DigUp may control the player.

Windows and Linux depend on which application you have. PDFs open at the page in viewers that can be told a page, and the README lists Edge, Chrome, Firefox, Acrobat, SumatraPDF, Evince and Okular by name. Recordings and videos open at the moment in VLC, mpv or MPC-HC. Anything else opens the file from the beginning, though the large preview always plays from the matched moment.

Inside the panel, arrow keys move through results, Enter opens one, Space brings up the large preview once you have moved to a result, Cmd+Return on Mac or Ctrl+Enter elsewhere reveals the file in Finder, Explorer or your file manager, and Cmd+O opens the same search in a bigger window with a picture grid and filters.

Two desktop integration details bite on Linux. Under Wayland on GNOME and KDE, where an app cannot set its own shortcut, DigUp adds Ctrl+Shift+Space to the desktop keyboard settings during setup and you change it there. On GNOME the tray icon needs the AppIndicator extension, which Ubuntu ships; without it the same items sit behind the window's menu.

A Swift core with a Rust or Tauri-style layout around it

The repository structure gives a hint about how the pieces divide. The primary language is Swift and Sources/, Package.swift, Package.resolved and Resources/ describe a native core, while updates/, worker/, shell/, scripts/, evals/, tests/ and build.sh sit around it.

The evals directory is the part a technical reader should look at first. A tool that returns semantic matches needs a way to judge whether the matches are any good, and an evals directory alongside Tests suggests that question is being worked on rather than assumed.

Maintenance is recent and busy. The last push was on 2026-10-14, and three releases landed inside the preceding week: v0.6.0 on 2026-10-09, v0.6.1 on 2026-10-12 and v0.7.0-beta.1 on 2026-10-14, the last one marked as the Windows and Linux beta. An appcast.xml file is also committed.

One caveat on that cadence: the Mac app and the Windows and Linux builds are on different maturity tracks, and the README labels the latter beta explicitly.

Editorial conclusion

DigUp fits a Mac user with an Apple Silicon machine who has accumulated enough documents, recordings and screenshots that filename search no longer reaches them, and it is equally reasonable on Windows and Linux given the beta build ships as an installer and an AppImage. It is the wrong choice if your archive is mostly numeric data exports, since the README says text that is mostly numbers is matched by exact text only, or if you need to search inside a repository's source but leave code search disabled. Before indexing anything sensitive, confirm your folders list contains nothing you would not hand to a local model, and change the search shortcut if the default Shift+Cmd+Space is not suitable.

Frequently asked questions

How do I install DigUp on a Mac?

Download the DMG from the Releases page and drag DigUp to Applications, or use brew install --cask arahim3/tap/digup. It needs an Apple Silicon Mac running macOS 14 or later. The first launch downloads an 865 MB model once.

Does DigUp send my files anywhere?

The README states that nothing you index leaves your computer and that DigUp goes online only to download the model once and to check for updates once a day, which can be turned off. There is no account and no telemetry.

Why does Windows warn me about the DigUp installer?

The installer is not signed yet, so Windows will not recognise it. The README says to choose More info and then Run anyway. You need DigUp_x.y.z_x64-setup.exe from the beta release on 64-bit Windows 10 or 11.

Does DigUp search the source code in my projects?

Only if you turn on code search, and then only for the folders you pick. Outside those folders it never reads code, and inside a code project it reads only screenshots. A matching function opens in your editor at the line.

How precise is the timestamp on audio and video results?

Audio is indexed in overlapping 30 second windows, so a match points to its moment rather than to the file. Video samples one frame every few seconds, one per shot, plus the soundtrack handled the same way. Long PDFs are indexed page by page, with the first 30 pages available right away and up to 5,000 pages per file.

What shortcut opens the DigUp search panel?

Shift+Cmd+Space on a Mac and Ctrl+Shift+Space on Windows and Linux, and the README says you can change it. On GNOME and KDE under Wayland, DigUp adds Ctrl+Shift+Space to the desktop keyboard settings during setup and you change it there.

Official sources

  1. ARahim3/DigUp on GitHub
  2. Issues
  3. License: MIT
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/arahim3-digup.svg)](https://hysenlabs.com/projects/arahim3-digup)

Was this useful?