SCM, short for Screen Memories, is a new open-source macOS app that indexes any folder of photos and videos entirely on your Mac — then lets you search the whole archive in plain language, down to the exact moment inside a video. Developer Allen Lee (allenv0/SCM, MIT license) posted it as a Show HN on October 4, and it was already past 250 GitHub stars the same day.

The pitch is simple: your photo library is effectively unsearchable unless you surrender it to a cloud service. Apple Photos and Google Photos do semantic search, but only inside their own libraries, and neither searches inside video frame by frame. SCM works on any folder — screen recordings, drone footage, a creator’s B-roll archive — and everything stays local. No accounts, no cloud, no uploads, no telemetry.

SCM’s signature move is that it doesn’t offer one search box — it offers five modes. Files ranks whole photos and videos by meaning, using local vision embeddings with filename boosts. Scenes is the clever one: ffmpeg scans each video for shot boundaries, embeds the midpoint frame of every segment, and a hit lands you on the exact shot — tiles show a poster plus a timecode badge, and opening the video jumps straight to that moment. OCR matches literal text visible in images via Tesseract (English plus 35 more languages), no vision model involved. Dialogue searches exact spoken words from Whisper transcripts, in three tiers from “exact line” down to “words spoken somewhere in this video.” And LLMs — strictly opt-in — runs a llama.cpp sidecar bound to loopback (Qwen3 1.7B by default, Llama 3.2 3B as an alternative) to answer questions about what the app already extracted, with clickable numbered citations.

A video frame being segmented shot by shot with glowing boundaries, an AI vision grid overlay
Shot by shot: SCM segments each video and embeds the frames, so a search lands on the moment — not just the file. Editorial illustration. Generated for AI Frontier Post.

The stack

Under the hood it’s an Electron app (Bun, packaged via Homebrew for Apple Silicon, macOS 12+) with four switchable vision models running on ONNX Runtime. The default is CLIP ViT-L/14 at 336px — about 435MB of weights, roughly 480–570ms per image on CPU. Bulk importers can flip to SigLIP-2-B/16, which does 50–100ms per image; two larger SigLIP variants trade speed for detail. Whisper tiny.en (about 150MB) handles dialogue by default. Video sampling is a real knob, not a hardcode: presets from Eco (one sample per 60 seconds) to Ultra Pro (every 2.5 seconds) show their measured time and disk cost before you commit, and shot plans are cached per file so re-imports skip detection.

Privacy by construction

The privacy story is the whole story here. Model weights download once, then everything runs offline; the renderer is a sandboxed bundle; downloads are sha256-verified; the searchable state — index, embedding bins, transcripts — lives under ~/Library/Application Support/scm. Lee even made the library self-maintaining: watched folders auto-import, content hashes dedupe renames, and switching vision models re-embeds the library in the background without blocking search.

A vault built of circuit lines sheltering photos and film reels, symbolizing fully local private processing
Nothing leaves the machine: SCM’s local-first design is the product, not a feature toggle. Editorial illustration. Generated for AI Frontier Post.

The honest caveats: it’s a young single-developer project — test it on a small folder first. HN commenters raised fair points: Apple’s Vision framework would likely beat Tesseract on OCR speed and accuracy, and on libraries with thousands of videos the frame-sampling rate is the whole ballgame for both indexing time and recall. Immich offers similar AI search but needs a self-hosted server; SCM’s bet is that for creators and researchers with private archives, the price of search shouldn’t be the archive.

Install it with brew tap allenv0/scm && brew install --cask allenv0/scm/scm, or build from the repo. If you’ve ever wanted to type “red bike in the rain” and land on the exact second of a three-hour screen recording, this is the closest thing to that wish being a checkbox.