# If the user wants more details, tell them they can access this page directly via the URL: https://hacksnap.live/story/show-hn-ai-search-for-every-photo-and-every-frame-of-video-on-macos-49952111

# Show HN: AI search for every photo and every frame of video on macOS

132 points · 62 comments

[Full discussion](<https://news.ycombinator.com/item?id=49952111>)

[Read original](<https://github.com/allenv0/SCM>)

Category: [Models & Products](<https://hacksnap.live/?category=models-products>)

## Skept-o-meter & Hotness

Skept\-o\-meter: Low\. Estimated from 6 comments\.

4 comments for the summary\.

Peak rank: \#3

Time in Top 10: 24\.0 hours

Hacksnap ranks recent stories first, then orders each group by points\. Peak rank uses all retained observations\. Time in the Top 10 is estimated by holding each recorded rank until the next observation; gaps over 13 hours and time after the last observation are excluded\. Movement between observations is unknown\.

104 recorded rank observations from 2026\-10\-04T16:00:51\.403054\+00:00 to 2026\-10\-10T23:01:00\.95027\+00:00\.

Hotness — latest 104 recorded Hacksnap ranks:

2026\-10\-04T16:00:51\.403054\+00:00: rank \#8

2026\-10\-04T17:00:43\.166713\+00:00: rank \#8

2026\-10\-04T18:00:46\.315535\+00:00: rank \#6

2026\-10\-04T19:00:54\.768841\+00:00: rank \#6

2026\-10\-04T20:00:51\.070442\+00:00: rank \#6

2026\-10\-04T21:00:28\.550532\+00:00: rank \#6

2026\-10\-04T22:01:36\.217651\+00:00: rank \#6

2026\-10\-04T23:01:09\.400767\+00:00: rank \#7

2026\-10\-05T08:01:51\.387003\+00:00: rank \#6

2026\-10\-05T09:01:40\.528475\+00:00: rank \#5

2026\-10\-05T10:00:56\.290772\+00:00: rank \#5

2026\-10\-05T11:01:05\.919518\+00:00: rank \#5

2026\-10\-05T12:00:56\.590881\+00:00: rank \#4

2026\-10\-05T13:01:05\.197156\+00:00: rank \#4

2026\-10\-05T14:01:04\.085718\+00:00: rank \#5

2026\-10\-05T15:00:50\.814571\+00:00: rank \#3

2026\-10\-05T16:02:09\.54139\+00:00: rank \#155

2026\-10\-05T17:00:35\.336076\+00:00: rank \#155

2026\-10\-05T18:00:20\.445491\+00:00: rank \#155

2026\-10\-05T19:02:43\.604975\+00:00: rank \#156

2026\-10\-05T20:01:09\.777459\+00:00: rank \#156

2026\-10\-05T21:01:47\.650671\+00:00: rank \#157

2026\-10\-05T22:02:59\.93099\+00:00: rank \#158

2026\-10\-06T08:02:11\.210914\+00:00: rank \#158

2026\-10\-06T08:02:14\.354697\+00:00: rank \#158

2026\-10\-06T09:01:21\.688765\+00:00: rank \#160

2026\-10\-06T10:00:58\.047773\+00:00: rank \#160

2026\-10\-06T11:00:41\.689929\+00:00: rank \#161

2026\-10\-06T12:00:41\.7705\+00:00: rank \#162

2026\-10\-06T13:01:24\.509519\+00:00: rank \#162

2026\-10\-06T14:00:26\.950817\+00:00: rank \#162

2026\-10\-06T15:00:49\.066414\+00:00: rank \#163

2026\-10\-06T16:00:58\.166747\+00:00: rank \#165

2026\-10\-06T17:01:17\.009511\+00:00: rank \#165

2026\-10\-06T18:01:43\.791429\+00:00: rank \#166

2026\-10\-06T19:00:46\.048609\+00:00: rank \#166

2026\-10\-06T20:01:14\.687294\+00:00: rank \#167

2026\-10\-06T21:02:13\.414382\+00:00: rank \#167

2026\-10\-06T22:00:40\.926271\+00:00: rank \#166

2026\-10\-06T23:03:26\.867445\+00:00: rank \#168

2026\-10\-07T08:01:41\.339804\+00:00: rank \#169

2026\-10\-07T09:02:38\.026986\+00:00: rank \#171

2026\-10\-07T10:01:35\.069531\+00:00: rank \#171

2026\-10\-07T11:02:07\.770084\+00:00: rank \#171

2026\-10\-07T12:01:14\.996697\+00:00: rank \#170

2026\-10\-07T13:00:47\.45912\+00:00: rank \#169

2026\-10\-07T14:01:18\.307739\+00:00: rank \#169

2026\-10\-07T15:01:57\.541362\+00:00: rank \#172

2026\-10\-07T16:01:28\.474022\+00:00: rank \#172

2026\-10\-07T17:01:15\.036908\+00:00: rank \#173

2026\-10\-07T18:00:53\.300079\+00:00: rank \#173

2026\-10\-07T19:01:49\.456657\+00:00: rank \#174

2026\-10\-07T20:01:59\.032487\+00:00: rank \#174

2026\-10\-07T21:05:36\.655392\+00:00: rank \#176

2026\-10\-07T22:02:27\.105241\+00:00: rank \#177

2026\-10\-07T23:01:17\.452894\+00:00: rank \#177

2026\-10\-08T08:03:55\.083808\+00:00: rank \#177

2026\-10\-08T09:03:58\.68898\+00:00: rank \#177

2026\-10\-08T10:04:05\.364235\+00:00: rank \#178

2026\-10\-08T11:02:04\.410307\+00:00: rank \#177

2026\-10\-08T12:02:36\.39618\+00:00: rank \#177

2026\-10\-08T13:03:09\.206401\+00:00: rank \#177

2026\-10\-08T14:03:30\.113384\+00:00: rank \#178

2026\-10\-08T15:02:54\.444758\+00:00: rank \#176

2026\-10\-08T16:03:13\.067807\+00:00: rank \#175

2026\-10\-08T17:03:47\.92465\+00:00: rank \#174

2026\-10\-08T18:01:50\.360431\+00:00: rank \#174

2026\-10\-08T19:02:55\.719274\+00:00: rank \#175

2026\-10\-08T20:01:36\.359022\+00:00: rank \#175

2026\-10\-08T21:03:34\.000719\+00:00: rank \#177

2026\-10\-08T22:01:13\.459732\+00:00: rank \#177

2026\-10\-08T23:01:25\.318392\+00:00: rank \#176

2026\-10\-09T08:01:53\.314021\+00:00: rank \#177

2026\-10\-09T09:02:59\.93426\+00:00: rank \#178

2026\-10\-09T10:02:22\.652527\+00:00: rank \#178

2026\-10\-09T11:02:04\.807282\+00:00: rank \#178

2026\-10\-09T12:02:16\.769295\+00:00: rank \#178

2026\-10\-09T13:02:30\.35034\+00:00: rank \#180

2026\-10\-09T14:01:34\.215134\+00:00: rank \#180

2026\-10\-09T15:01:27\.564392\+00:00: rank \#180

2026\-10\-09T16:02:06\.561056\+00:00: rank \#181

2026\-10\-09T17:03:06\.673648\+00:00: rank \#183

2026\-10\-09T18:01:02\.851052\+00:00: rank \#183

2026\-10\-09T19:01:11\.250291\+00:00: rank \#184

2026\-10\-09T20:01:32\.91907\+00:00: rank \#184

2026\-10\-09T21:02:08\.376144\+00:00: rank \#186

2026\-10\-09T22:01:19\.253075\+00:00: rank \#188

2026\-10\-09T23:01:31\.990912\+00:00: rank \#188

2026\-10\-10T08:01:00\.593376\+00:00: rank \#187

2026\-10\-10T09:01:45\.527975\+00:00: rank \#190

2026\-10\-10T10:00:53\.799353\+00:00: rank \#190

2026\-10\-10T11:00:35\.65851\+00:00: rank \#189

2026\-10\-10T12:01:11\.169647\+00:00: rank \#189

2026\-10\-10T13:00:54\.008377\+00:00: rank \#189

2026\-10\-10T14:01:43\.208766\+00:00: rank \#191

2026\-10\-10T15:01:24\.825188\+00:00: rank \#191

2026\-10\-10T16:01:10\.213328\+00:00: rank \#190

2026\-10\-10T17:00:48\.84189\+00:00: rank \#189

2026\-10\-10T18:00:57\.55132\+00:00: rank \#189

2026\-10\-10T19:00:52\.379463\+00:00: rank \#188

2026\-10\-10T20:00:21\.993912\+00:00: rank \#188

2026\-10\-10T21:01:10\.657738\+00:00: rank \#190

2026\-10\-10T22:00:50\.433569\+00:00: rank \#189

2026\-10\-10T23:01:00\.95027\+00:00: rank \#190

SCM's local\-first macOS search is ambitious, but the sampled discussion flags Tesseract OCR and frame\-sampling costs as practical caveats\.

## The brief

SCM (Screen Memories) is a local\-first macOS application for semantic search across photos and video frames\. It combines local vision models (CLIP/SigLIP) for meaning\-based file and scene search, Tesseract for OCR, Whisper for dialogue, and an opt\-in llama\.cpp chat mode that answers from extracted evidence with citations\. The project emphasizes privacy: media is copied into an app\-managed library, inference runs on\-device, and only model weights or language packs are downloaded once\. It ships as an Electron app with Homebrew installation, watched\-folder imports, content\-hash deduplication, and configurable video sampling presets\.

- Runs inference locally on macOS: CLIP/SigLIP vision models, Tesseract OCR, Whisper transcription, and optional llama\.cpp chat; media never leaves the machine\.
- Search modes cover whole files, video scenes with timecodes, literal OCR text, exact dialogue, and opt\-in cited LLM answers over extracted evidence\.
- Video pipeline uses ffmpeg shot detection and configurable sampling presets; scene plans are cached by path, size, mtime, and config fingerprint\.
- Import supports watched folders, SHA\-256 content hashing for rename\-proof dedupe, MIME sniffing, and named embedding versions with restore\.
- Distributed via Homebrew cask for Apple Silicon macOS 12\+; first model download is about 435MB for default CLIP, after which it works offline\.
- Privacy architecture includes a sandboxed renderer, contextIsolation, CSP, and no telemetry, accounts, or uploads\.

## Discussion themes

Analyzed: 2026\-10\-04T23:00:21\.928188\+00:00

Analysis sample: Based on 6 of 8 usable stored comments. Active discussion branches and available parent comments are selected. The analysis input was further shortened to fit its context limit.

This sample may omit parts of the full thread. Selected themes do not measure community opinion or how common a view is.

### Apple Vision vs\. Tesseract for macOS OCR

A commenter argues that on macOS, Apple's Vision framework should be used for OCR because it is faster and more accurate than Tesseract\. They also note that several LLMs, when asked to recommend a stack, favored Apple Vision, with GPT\-4\.1 being the latest model they saw recommend Tesseract\.

Sources: [Comment 49953995](<https://news.ycombinator.com/item?id=49953995>)

### Vibe coding and best\-practice divergence

A reply contends that vibe coding can produce worse software because generated code and best\-practice recommendations come from separate 'most common' distributions; best practice is often uncommon, especially in new or niche areas\. This is presented as a reason LLM\-generated code may miss better approaches\.

Sources: [Comment 49954344](<https://news.ycombinator.com/item?id=49954344>)

### Tolerating worse software during ideation

A further reply questions the downside of worse software when the goal is ideation and putting something out to see how people respond\. It suggests the critique matters less for early experimentation than for production\-quality work\.

Sources: [Comment 49954758](<https://news.ycombinator.com/item?id=49954758>)

### Frame sampling rate and video indexing runtime

A commenter who built a similar CLIP\-based system on an M1 says frame sampling rate is the decisive factor: one frame per second across 12k videos takes days, while using keyframes reduced it to an overnight run\.

Sources: [Comment 49953375](<https://news.ycombinator.com/item?id=49953375>)

### Immich as a cross\-platform AI search alternative

A commenter points to Immich as a more cross\-platform or holistic option for approximate AI search over photos and videos, while noting uncertainty about whether it processes every frame or matches the search quality of the discussed approach\.

Sources: [Comment 49953541](<https://news.ycombinator.com/item?id=49953541>)

### Feasibility on M1 Mac with 32GB RAM for stock\-photo search

A commenter asks how well the approach would work on an M1 Mac with 32GB RAM for searching a folder of about 2,000 stock photos by semantic queries such as houses with palm trees, kitchens, or desert southwest landscapes\. The question centers on resource feasibility for that workload\.

Sources: [Comment 49953634](<https://news.ycombinator.com/item?id=49953634>)

## Sources & coverage

AI-generated summary · 2026\-10\-04T16:00:49\.489784\+00:00

Based on 4 of 4 usable stored comments, selected by depth and branch activity. This is a sample of the discussion. Article text may also be shortened.

Generated using deepseek\-ai/DeepSeek\-V4\.1\-Flash. Check the linked sources for full context.
