allenv0 / SCM
git clone https://github.com/allenv0/SCM.git
Multimodal memory agent on macOS
+2
stars, 24h Β· #5,706
+~14
stars, 7 days Β· #6,448
+497
stars, 30 days Β· #1,067
502
β
total Β· +3% this week
38
forks Β· 1 open issues
Star history (as recorded here)
LanguageTypeScript
LicenseMIT
Created2026-10-03 (19d ago)
Last push1d ago
Watchers1
OwnerUser
GitHub topics
Links
- GitHub: github.com/allenv0/SCM
- Homepage: https://scm.allenlee.site
- Releases Β· Issues Β· Hacker News mentions
README excerpt
# SCM β Screen Memories Deep AI search for every photo and every frame of video in any folder on macOS. Local-first β no accounts, no cloud, no uploads. Inference runs on your Mac. **What makes it different** - **Search like you think** β describe a memory in plain language; a local vision model does the rest. - **Video, down to the moment** β scenes are segmented and embedded, so you land on the shot, not just the file. - **Text and dialogue too** β OCR over visible text; exact spoken-line search via Whisper, each as its own mode. - **Your tabs, your prompts** β save any query as a tab; Screenshots and Email tabs are toggleable. - **Self-maintaining library** β watched folders auto-import, content hashes dedupe renames, and model switches re-embed in the background without blocking search. - **Truly private** β your media never leaves the machine. Weights download once; everything after that is offline. ## Five ways to search | Mode | Finds | | ------------------- | ----------------------------------------------------------------------------------------- | | **Files** | Whole photos/videos by meaning β vision rank with filename and phrase boosts | | **Scenes** | Moments inside video β search a shot, jump to its timecode | | **OCR** | Text visible in images and frames, matched literally (Tesseract; eng + 35 language toggles) | | **Dialogue** | Exact spoken words in videos (Whisper), tiered exactness | | **LLMs** _(opt-in)_ | Local chat over the dialogue, OCR, and filenames your Mac already extracted β cited answers | --- ## Requirements - macOS (packaged with electron-builder; menu-bar/tray features are macOS-only) - Bun β the project uses `bun` as package manager and runner - Node modules installed: `bun install` - First use of a model downloads its weights (~435MB for the default CLIP); after that, fully offline. ## Download The easiest install is via Homebrew (Apple Silicon, macOS 12+). The tap's cask clears the macOS quarantine flag automatically on every install and upgrade, so the app launches with no manual Gatekeeper steps: [code] Upgrades keep the same behavior: [code] The tap lives at allenv0/homebrew-scm. ## Development [code] ## Building the app package (DMG / ZIP) [code] This runs two steps in sequence: 1. **`vite build`** β compiles the React renderer into `dist/` (picks up all changes under `src/`). 2. **`electron-builder --mac`** β packages the app. It bundles the fresh `dist/` bundle together with `main.js`, `preload.js`, `main-lib/`, and `indexer/` (the file list is configured under `build.files` in `package.json`), then produces the installers. **Output:** the installers land in `dist-app/` (see `build.directories.output` in `package.json`) β look for `SCM-0.2.4.dmg` and `SCM-0.2.4.zip`. --- ## Features ### Files Typing starts an instant filename-keyword pre-pass, then the vision model takes over: results are scored by cosine similarity against image embeddings, with gated phrase and filename boosts, an