
PicSeek
Private AI photo search & storage cleaner. 100% Offline.
4 followers
Private AI photo search & storage cleaner. 100% Offline.
4 followers
PicSeek is a privacy-first photo manager powered by on-device AI. π Natural Language Search: Find photos by describing them (e.g., "cat sleeping on sofa"). π‘οΈ 100% Private: AI runs locally on your device. No cloud uploads. π§Ή Smart Cleaner: Easily find and remove similar photos to save space. Stop scrolling, start finding. Reclaim your library with local AI.








Hi Product Hunt! π
I'm GONGLIN HU, the creator of PicSeek.
I built PicSeek because I was frustrated with two things:
I have 20,000+ photos, and finding that one specific meme or document was impossible with standard keyword search.
I didn't want to upload my entire life to a cloud server just to get smart search features.
So I built a solution that brings state-of-the-art AI (CLIP models) directly to your iPhone. It indexes your photos locally, creating a "vector database" in memory that allows for "semantic search"βyou can describe a scene, and it finds it.
What makes PicSeek different?
Privacy First: It works completely offline (Airplane mode approved! βοΈ).
Smart Cleaning: It identifies similar shots (bursts, duplicates) to help you save space.
Tech Stack: Built with SwiftUI, CoreML.
I'd love to hear your feedback! What's the most annoying thing about managing your photo library? Let me know in the comments! π
The 100% offline, local AI approach is the killer feature for anyone concerned about privacy. Bringing semantic search to a personal device is impressive.
A technical question for power users: How does the local "vector database" handle library updates? If I take new photos, does the app need to re-index the entire library, or can it incrementally add the new images without a major performance hit?
@olajiggy321Β First of all, thank you for taking an interest in my work.
Currently, I store the embeddings of photos in SwiftData while also keeping an in-memory copy of the photo-embedding mappings. When I process new photos, I sync the new embedding data into memory; when a photo is deleted, I remove its corresponding embedding from memory as well.
This implementation is still quite rough, and Iβve already noticed several issues with it. Iβm currently researching a few real edge-device vector databases and plan to choose one to refine my appβs architecture. I believe the updated version will be ready very soon.
Thank you again for your interest in my app. Once the vector database improvements are in place, Iβd be happy to discuss the implementation details with you.
Youβre also welcome to try out the app and share any feedback or suggestions you might have.
@fox_linΒ
Thanks for the detailed and transparent technical breakdown. It's great to see you're already planning the move to a dedicated edge-device vector databaseβthat's the right architectural decision for performance at scale.
I have a small, practical idea related to that user experience during re-indexing or database migration that you could consider as you refine the architecture.
If you're open to a suggestion, what's the best way to share it? (Email, DM, etc.)
@olajiggy321Β Thank you so much for your suggestions! You can reach me via email at foxdmu@gmail.com β I'm really looking forward to hearing your ideas! π
Thanks for the detailed and transparent technical breakdown. It's great to see you're already planning the move to a dedicated edge-device vector databaseβthat's the right architectural decision for performance at scale.
I have a small, practical idea related to that user experience during re-indexing or database migration that you could consider as you refine the architecture.
If you're open to a suggestion, what's the best way to share it? (Email, DM, etc.)