A local-first, read-only AI photo indexer for macOS. Walks a photo library on disk and runs semantic search, zero-shot tagging, and face detection/clustering entirely on-device — nothing uploaded, nothing modified.
Years of photos and RAW files sitting on disk are only searchable by folder and date unless they're uploaded to a cloud photo service — which means handing over a personal photo library (including whatever's in it) to a third party in exchange for search. The alternative was to build the same category of tool — semantic search, tagging, face recognition — but keep every byte on the machine it started on.
PhotoMind walks a photo library, extracts EXIF metadata and generates thumbnails into a local SQLite database, then runs an entirely on-device AI pipeline: CLIP embeddings for "a dog on the beach"-style natural-language search, zero-shot tagging against a hand-built taxonomy, and face detection/clustering that groups photos by person — all through a FastAPI backend and a React gallery UI at 127.0.0.1:8000.

~/.photo-mind/. Source photos are only ever read, never moved or modified.| Backend | Python — Click CLI + FastAPI server |
| Frontend | Vite + React 19 gallery SPA |
| Search | open_clip ViT-B-32-quickgelu, brute-force cosine similarity |
| Faces | InsightFace buffalo_l via CoreML + DBSCAN clustering |
| Storage | SQLite (WAL mode) with an FTS5 search index, entirely outside the repo |
A working local tool, in daily personal use, and the reference implementation for Manzar — its video-indexing counterpart, described elsewhere in this list.
If your data is sensitive by nature — clinical, personal, or otherwise — local-first AI is often more practical than it looks. Happy to talk through what that would take.