SCM: lokale KI-Suche für Fotos und Videoframes
Ein quelloffenes Mac-Werkzeug durchsucht Fotos und jeden Videoframe per CLIP-Modell lokal – Gewichte lädt es einmal, danach bleibt alles offline.
Kurz gesagt
SCM ist eine quelloffene Mac-App, die Fotos und einzelne Videoframes mit lokal laufenden CLIP-Modellen nach Bildinhalt durchsuchbar macht, ohne dass Material das Gerät verlässt.
Auf einen Blick
- Vier Vision-Modelle zur Wahl: CLIP ViT-L/14@336 (Standard, ca. 435 MB), SigLIP-2-B/16, SigLIP-2-L/16@256 und SigLIP-B/16@384.
- Fünf Abtastraten für Video: von 60 Sekunden bis 2,5 Sekunden pro Messpunkt; Szenengrenzen erkennt ffmpeg.
- Transkripte per Whisper tiny.en (ca. 150 MB) oder base.en (ca. 300 MB); OCR per Tesseract mit Englisch plus 35 zuschaltbaren Sprachen.
- Optionaler lokaler Chat über llama.cpp mit Qwen3 1.7B (ca. 1,1 GB) oder Llama 3.2 3B (ca. 2 GB).
- Voraussetzungen: macOS 12 oder neuer auf Apple Silicon, Bun als Runtime; MIT-Lizenz, Version 0.2.4.
SCM – kurz für „Screen Memories“ – macht eine Mac-Mediathek nach Bildinhalt durchsuchbar: Statt Dateinamen vergleicht die App die Bedeutung von Fotos und von jedem abgetasteten Videoframe, und zwar mit Modellen, die auf dem eigenen Rechner laufen. Das Projekt steht unter MIT-Lizenz auf GitHub und wird als Electron-App über Homebrew installiert.
Wie die Suche funktioniert
Die App bündelt fünf Suchwege. Die Dateisuche sortiert Treffer nach Bildbedeutung und gewichtet Dateinamen und Phrasen zusätzlich. Die Szenensuche schneidet Videos in Einstellungen und liefert exakte Timecodes zurück; die Grenzen erkennt ffmpeg. Dazu kommen OCR-Treffer in Bildern und Frames sowie eine Dialogsuche über Whisper-Transkripte.
Welche Modelle lokal laufen
Für die Bildseite stehen vier ONNX-Modelle zur Wahl: CLIP ViT-L/14@336 als Standard mit rund 435 MB, dazu SigLIP-2-B/16, SigLIP-2-L/16@256 und SigLIP-B/16@384. Die Sprachseite nutzt Whisper tiny.en (ca. 150 MB) oder base.en (ca. 300 MB), die Texterkennung Tesseract – Englisch ist fest aktiv, 35 weitere Sprachen lassen sich zuschalten, je Paket 2,4 bis 5 MB. Optional startet ein llama.cpp-Prozess mit Qwen3 1.7B (ca. 1,1 GB) oder Llama 3.2 3B (ca. 2 GB) für einen Chat über Dialoge, OCR-Text und Dateinamen. Nach Angaben des Projekts verlässt dabei kein Material das Gerät; die Gewichte werden einmal geladen, danach arbeitet die App offline.
Wie fein Videos abgetastet werden
Fünf Voreinstellungen regeln den Rechenaufwand: „Eco“ setzt einen Messpunkt pro 60 Sekunden, „Balanced“ alle 30 Sekunden, „Detailed“ alle 15, „Ultra“ alle 5 und „Ultra Pro“ alle 2,5 Sekunden pro Segment. Wer kurze Momente treffen will, zahlt das mit Indexzeit und Plattenplatz. Index, Float32-Embeddings je Modell, Szenen- und Transkript-Dateien, Thumbnails und Poster liegen unter ~/Library/Application Support/scm.
Was offen bleibt
Die Projektseite nennt eigene Grenzen: Embedding-Versionen sind auf zehn Snapshots gedeckelt, Problemdateien werden dreimal wiederholt und dann bis zur nächsten Änderung übersprungen, und unsignierte Builds laufen lokal, lösen aber Gatekeeper-Hinweise aus. Voraussetzung ist macOS 12 oder neuer auf Apple Silicon mit Bun als Runtime. Unabhängige Messwerte zu Indexgeschwindigkeit oder Trefferqualität fehlen – alle Angaben stammen aus der Dokumentation zu Version 0.2.4 im Repository, nicht aus einem eigenen Test. Der Show-HN-Eintrag stand in unserem Feed bei 141 Punkten und 66 Kommentaren; den Diskussionsthread selbst haben wir nicht gelesen. Zum Abrufzeitpunkt zeigte das Repository 289 Sterne und 14 Forks.
Häufige Fragen
Verlassen meine Fotos und Videos den Mac?
Nein. Laut Projektseite laden die Modellgewichte einmal herunter, danach läuft die Analyse offline; es gibt kein Konto, keinen Upload und keine Telemetrie.
Welche Hardware braucht SCM?
macOS 12 oder neuer auf Apple Silicon. Für den Standardpfad kommen rund 435 MB Modellgewichte hinzu, für den optionalen Chat bis zu 2 GB.
Findet SCM auch gesprochene Wörter im Video?
Ja, über lokale Whisper-Transkripte (tiny.en oder base.en). Die Dialogsuche trifft exakte Wörter, die Szenensuche gibt Timecodes der passenden Einstellung zurück.