Tag and query any file with native macOS Finder tags — boolean/Venn queries, batch workflows, and content-based suggestions.
Overlap reads and writes real macOS tags (com.apple.metadata:_kMDItemUserTags), so everything stays interoperable with Finder, Spotlight, and other tag tools — nothing is locked in a private database. It works on any file type (images, video, audio, PDFs, text, archives, even folders), not just photos.

| Explore — Venn query | Tags — grid + preview |
|---|---|
![]() | ![]() |
| Queue — intake & drill | Explore — tag map |
![]() | ![]() |
(A OR B) AND C). Paint regions of a Venn diagram to select exact intersections; the diagram is laid out from the real data.T, type-ahead), drag-onto-tag, click-to-apply; create / rename / merge / delete tags.Requires Xcode 15+ (macOS 13+). The project is generated with XcodeGen:
brew install xcodegen
xcodegen generate
open Overlap.xcodeproj # ⌘R
Overlap runs unsandboxed so it can read and write Finder tags across your folders.
~/Pictures). Spotlight must have indexed the scope for tags to appear.Tags live on the files. Deleting a tag in Overlap removes it everywhere — Finder, Spotlight, other tools.
NSMetadataQuery (kMDItemUserTags LIKE '*') finds every tagged item of any type. Metadata is parsed off the main thread and cached to ~/Library/Application Support/Overlap/, so tags appear instantly on the next launch. Firmlink path aliases (/Users vs /System/Volumes/Data/Users) are canonicalized to avoid duplicates.TagStore is the single source of truth. The query is a list of VennGroups evaluated as sum-of-products: OR starts a clause, AND binds diagrams within it. Sidebar, chips, Venn, and saved queries all edit this one model.VennLayout.swift): each pair of circles targets a distance from its real overlap, then relaxation + hard constraints settle it. It's SwiftUI-free, so a headless validator (scripts/validate-venn.swift) can replay the exact layout and check every selected region renders.URLResourceValues.tagNames; every mutation is undoable.Tag suggestions come from an out-of-process plugin system — standalone executables, in any language, discovered at runtime. Overlap pipes a JSON request to a plugin's stdin and reads suggestions from stdout, so suggestion logic (e.g. a future Apple Vision + clustering engine) ships separately from the app.
Inspired by Tagception by Evan Wallace — the project that showed how good a Finder-tag browser can feel.
Overlap is free software under the GNU GPL v3.0. You may use, study, share, and modify it; any derivative you distribute must also be open source under the GPL. Free, forever.
43 commits
Swift
98.1%
Shell
1.7%
Tag and query any file with native macOS Finder tags — boolean/Venn queries, batch workflows, and content-based suggestions.
Overlap reads and writes real macOS tags (com.apple.metadata:_kMDItemUserTags), so everything stays interoperable with Finder, Spotlight, and other tag tools — nothing is locked in a private database. It works on any file type (images, video, audio, PDFs, text, archives, even folders), not just photos.

| Explore — Venn query | Tags — grid + preview |
|---|---|
![]() | ![]() |
| Queue — intake & drill | Explore — tag map |
![]() | ![]() |
(A OR B) AND C). Paint regions of a Venn diagram to select exact intersections; the diagram is laid out from the real data.T, type-ahead), drag-onto-tag, click-to-apply; create / rename / merge / delete tags.Requires Xcode 15+ (macOS 13+). The project is generated with XcodeGen:
brew install xcodegen
xcodegen generate
open Overlap.xcodeproj # ⌘R
Overlap runs unsandboxed so it can read and write Finder tags across your folders.
~/Pictures). Spotlight must have indexed the scope for tags to appear.Tags live on the files. Deleting a tag in Overlap removes it everywhere — Finder, Spotlight, other tools.
NSMetadataQuery (kMDItemUserTags LIKE '*') finds every tagged item of any type. Metadata is parsed off the main thread and cached to ~/Library/Application Support/Overlap/, so tags appear instantly on the next launch. Firmlink path aliases (/Users vs /System/Volumes/Data/Users) are canonicalized to avoid duplicates.TagStore is the single source of truth. The query is a list of VennGroups evaluated as sum-of-products: OR starts a clause, AND binds diagrams within it. Sidebar, chips, Venn, and saved queries all edit this one model.VennLayout.swift): each pair of circles targets a distance from its real overlap, then relaxation + hard constraints settle it. It's SwiftUI-free, so a headless validator (scripts/validate-venn.swift) can replay the exact layout and check every selected region renders.URLResourceValues.tagNames; every mutation is undoable.Tag suggestions come from an out-of-process plugin system — standalone executables, in any language, discovered at runtime. Overlap pipes a JSON request to a plugin's stdin and reads suggestions from stdout, so suggestion logic (e.g. a future Apple Vision + clustering engine) ships separately from the app.
Inspired by Tagception by Evan Wallace — the project that showed how good a Finder-tag browser can feel.
Overlap is free software under the GNU GPL v3.0. You may use, study, share, and modify it; any derivative you distribute must also be open source under the GPL. Free, forever.
43 commits
Swift
98.1%
Shell
1.7%