Show HN: I made a Mac app to search my images and videos locally with ML (desktopdocs.com)
Once you find the file you're looking for you can resize it, export it to Adobe Premiere Pro, or drag and drop it into another app.
I built Desktop Docs because I keep tons of media files on my computer and I can never remember where I save stuff (lots of screenshots, memes, and downloads). The Apple Photos app also only supports photos in your iCloud.
Desktop Docs supports adding folders or individual files to an AI Library where you can search by the contents of your files, not just file titles.
You can search by objects ("cardboard box"), actions ("man smiling", "car driving"), by emotion ("surprised woman", "sad cowboy"), or the text in the frame (great for screenshots or memes).
It's also 100% private. Make any media searchable without it ever leaving your computer.
How I built it: - 100% Javascript (I'm using Electron JS and React JS). - Embedding generation (CLIP from OpenAI is used to compute the image embeddings and text embeddings for user queries). - Redis (storing and doing KNN search on the embeddings with this DB). - Image/video editing (the app ships with FFmpeg binaries to explode videos into individual frames and scale images).
Demo: https://www.youtube.com/watch?v=EIUgPNHOKKc
If there are any features you'd like to see in Desktop Docs or want to learn more about how I built it, drop me a comment below. Happy to share more.
173 comments
[ 4.5 ms ] story [ 307 ms ] threadMy first impression was that you'd "just" upload my pictures to OpenAI with a prompt and call it a day.
Maybe highlight that it uses ML running locally? (I see that it's in the FAQ, but in the title)
Apple is a good example: https://www.apple.com/macbook-pro/
I'd love to know the specifics. if there's an installable, reproducible local build w/ regular model/updates/maintenance that I could subscribe to, I'd be an interested party to a tool like that.
It’s an app that runs on a Mac. What framework it’s running on doesn’t make it less of an app.
https://developer.apple.com/design/human-interface-guideline...
I actually had a similar idea to yours using python but ended up fizzling out on the idea after a bit as other projects came up.
And the same is true of some apps made by Apple framework too! Catalyst apps are (almost always) terrible, including the ones done by Apple. The only exception I’m aware of is Messages, and even that one is not perfect.
They are apps that happen to run on a Mac. Not Mac apps.
If it's not a mac app then what exactly is executing on the mac?
In the future I'd like to add functionality to add/delete models as needed so you can manage how much space the app takes on your computer. That would also make it more feasible to support other models for text docs.
Long-term I'd like to support this, maybe by letting users add/delete models as needed.
Only things stopping me are
1. I'm on regular Linux 2. It's not clear if it sends absolutely nothing out over the network.
1. Might be a heavy lift depending on your UI library or a trivial thing if you can expose everything as CLI executables. 2. Sounds like that's the intent, I just want to be really sure.
And correct, your data doesn't leave your computer. 100% local.
The images all get scaled down to 256x256 before the embeddings are generated to optimize for space. Don't have an exact number on how large the index will be but happy to run some tests and get back to you. The embeddings are stored as float32 arrays of 512 length.
CLIP likes perfect squares, so that's a limitation on the model size.
In terms of general compression are you familiar with FFmpeg? It has support for lossless compression into a bunch of different image formats.
I think practically it doesn’t matter. This is two people selling something for $20 (or maybe $50, I can’t tell). They tell you beforehand, so you know. It’s unlikely they operate in jurisdictions that force software to be refundable. So I guess you can sue them to get your money back. Or chargeback through your credit card.
This is why we can’t have nice things. I miss the old internet where it was just people sending small amounts of money to other people for cool things (people mailed me checks in 1996). And users didn’t have the expectation of legal expenses to account for unlikely edge cases.
Just trying to build cool stuff and put it out there into the world.
I understand the fear that a bunch of people will buy it and immediately request a refund because what's to stop them! but that hasn't been my experience, and I think having a generous refund policy engenders some good will and leads to more sales.
(of course if you've actually had problems with this, disregard! :)
To address the GP's comment though - I don't know the legalities behind this, but I remember buying physical software, in boxes, from stores, where the policy was "once you open the box/break the plastic seal you can't return it" and in the digital realm it seems like downloading would be the closest proxy to that. I just think concerns about this sort of dishonesty are pretty overblown, especially on the scale of indie software.
Funnily enough, there's no exception for physical books, so there are some people who basically treat bookstores as libraries.
IMHO, it would be better to eat a few refunds than risk changing my payment provider.
> "Screenie is a revolutionary screenshot manager designed specifically for macOS Catalina. With Screenie, you can drag screenshots from your menubar,preview and drag images from the Screenie Panel, and even search the text inside your images!"
The last update was two years ago (which added support for macOS Monterey), and, apparently unlike Desktop Docs, it collects usage data and diagnostics.
I'm so glad someone remembers how software is supposed to work.
Thanks.
https://github.com/jdberry/tag/
Demo looks neat though. I wonder if it can tell me which of my video files are SD, HD, and 4K. I've ripped so much media that I've lost track and did not name my files in such a way that it's obvious what resolution each one is. Something like that probably doesn't even need AI, just a peek at the existing metadata.
https://www.ghacks.net/2022/06/11/new-spotlight-features-in-...
I haven't been able to get this to work in Finder; can you please share which search attribute you're using?
It should do a visual search for some common things, as well as OCR in image text.
A time-based trial could be good in that respect, and as a benefit for the developer gets a satisfied user hooked-in and not wanting to lose access.
I'd personally love it if this also indexed text files and pdfs.
Of course I want to search for data in my photo downloads / screenshots folders and be able to pull / easily grab / copy the pic(s) to another folder or upload to a site and then paste the text..
I guess chaining this into notion / obsidian or similar would be beneficial as well.
I'm also considering making the models more a la carte so you can manage which ones your want to use depending on your use case. That way you could use for text, image/video, or both.
If enough people asked for it, I would consider adding a different embeddings models.
Cool project btw.
You are correct, ML now almost always stands for machine learning, and that is what it stands for in this case. I was just wondering if anyone else out there did the same thing. Looks like a hard, “No.” :)
I'm still learning a lot about performance for this type of operation, so it's a work in progress.
Is facial recognition (of known people) on the roadmap / a possibility?
It would be handy to be able to say photos of "mom" and it display all photos with mom in them. Probably not simple to build =p
Seems like it's worth bumping this up in priority.
- Will the purchase include upgrades? - I have most of my media on a NAS. Will this app be useful in my case? Would I be indexing a network drive?
Thanks!
2) This doesn't support NAS yet, but it's on the roadmap. If enough people are interested in that I'd bump it up in priority.
Is this something you'd be interested in?