SCM: Local AI Search Across Photos, Video Scenes, OCR, and Dialogue on macOS
SCM (Screen Memories) is a macOS app that indexes photos and video frames in watched folders and lets you search them with local vision, OCR, and speech models. No accounts, no cloud, no uploads — inference runs on your Mac.
Five search modes
- Files — whole photos/videos by meaning. Uses a filename-keyword pre-pass on first keystroke, then cosine similarity against image embeddings with gated phrase and filename boosts, an honesty floor calibrated per model, and a near-duplicate diversity filter. Each tile shows a "why it matched" badge (Visual match / Filename match) with a hover tooltip containing per-component scores. CJK queries search as overlapping bigrams — "台北車站" also matches 台北 and 車站.
- Scenes — every scene segment across all videos is scored, so hits land on the exact shot. Tiles show a scene poster with a timecode badge; opening the video jumps to that moment. A noise gate returns "no scene match" instead of gibberish, and each video contributes at most 3 scenes.
- OCR — text visible in images and frames, matched literally using Tesseract with eng plus 35 language toggles. Matches the fraction of query tokens literally visible in each image's OCR text.
- Dialogue — exact spoken-line search via Whisper, with tiered exactness.
- LLMs (opt-in) — local chat over the dialogue, OCR, and filenames your Mac already extracted, with cited answers.
Self-maintaining library
Watched folders auto-import. Content hashes dedupe renames. Model switches re-embed in the background without blocking search.
Install
Requires macOS 12+ on Apple Silicon. Homebrew cask clears the macOS quarantine flag on install and upgrade, so no manual Gatekeeper steps:
brew tap allenv0/scm
brew trust allenv0/scm
brew install --cask allenv0/scm/scmUpgrade with:
brew upgrade --cask allenv0/scm/scmDevelopment and building
Bun is the package manager and runner. First use of a model downloads weights (~435MB for the default CLIP); after that, fully offline.
bun install
bun run dev # build renderer bundle, then launch Electron
bun start # launch Electron without rebuilding
bun run build # rebuild renderer bundle into dist/Packaging produces DMG and ZIP in dist-app/:
bun run dist # signed if identity is in keychain
bun run dist:unsigned # skip code-sign discoveryUnder the hood, electron-builder --mac bundles the fresh dist/ renderer with main.js, preload.js, main-lib/, and indexer/. The repo is at 329 stars and 16 forks.
The tool is for macOS developers and power users who want semantic search over their own media library without shipping it to a cloud service.
📖 Read the full source: HN LLM Tools
👀 See Also

GitVelocity: AI Scoring of 50k PRs Reveals Insights on Code Complexity
GitVelocity uses Claude to score merged pull requests 0-100 across six dimensions: scope, architecture, implementation, risk, quality, and performance/security. After analyzing 50,000+ PRs across TypeScript, Python, Rust, Go, Java, and Elixir, the team found surprising patterns about PR size, test coverage, and AI adoption.

Agents Observe: Real-time Dashboard for Monitoring Claude Code Agent Teams
Agents Observe is a local dashboard that provides real-time observability for Claude Code agent sessions using hooks instead of OTEL. It captures every tool call, agent hierarchy, and event with filtering and search capabilities, running as a Docker container that auto-starts with Claude sessions.

Phaselock: An AI Agent Control System Inspired by Parenting Techniques
Phaselock is an open-source Agent Skill that implements four control mechanisms for AI coding agents: explicit gates before action, immediate feedback on mistakes, constrained choices, and mechanical rule enforcement. It works with Claude Code, Cursor, Windsurf, and any tool supporting hooks.

Zeude: Self-Hosted Monitoring Dashboard for Claude Code and OpenAI Codex
Zeude is a self-hosted dashboard that tracks Claude Code and OpenAI Codex usage, providing per-prompt token and cost breakdowns, weekly leaderboards, and team skill management. Version 1.0.0 adds Windows support, Codex integration, and per-user skill opt-out.