A solo developer just open-sourced framedex, an MIT-licensed local pipeline that indexes a year of personal video footage on a 2021 MacBook using a quantized Gemma 4 31B model running through LM Studio. The project, released on May 21 by SimbaStack, turns scattered drives of unlabeled clips into a markdown-searchable archive without uploading a single frame to a cloud service.

Try it: index a folder of footage in one afternoon

Clone the repo into your Claude Code skills directory and run the setup script:

git clone git@github.com:Simbastack-hq/framedex.git ~/.claude/skills/framedex
python3 ~/.claude/skills/framedex/scripts/setup.py

Start LM Studio with the Gemma 4 31B Q4 model loaded, point the vidx command at a folder of clips, and the indexer writes a .description.md sidecar next to each video. The sidecar carries a YAML frontmatter block with lighting, time-of-day, color palette, GPS, face embeddings, plus a prose scene description. Once a drive is indexed, vidx-query filters by rating, keyword, location, or language, and DaVinci Resolve Studio 21 IntelliSearch reads the sidecars directly for clip discovery inside the timeline.

Why it matters

Video archive search has been the bottleneck blocking automated editing for years. Editors with a decade of footage cannot ask a question like "handheld interior clips at golden hour with people" without scrubbing every drive by hand. SimbaStack frames the indexer as the prerequisite to automated editing: once descriptions exist as text, retrieval, ranking, and assembly can be handled by a language model. Running Gemma 4 31B locally also keeps client footage off third-party servers, which matters for editors under NDA or working with location-sensitive material.

Under the hood

The pipeline stitches together standard tooling: WhisperX 3.8 for transcription with speaker diarization, ffmpeg and ffprobe for frame sampling and audio extraction, exiftool for GPS, InsightFace for face embeddings, and Nominatim for reverse geocoding. Claude (Opus 4.6 via CLI or API) handles the vision pass that writes prose scene descriptions, with the option to swap in the local Gemma model for offline runs. Outputs are plain text files plus a SQLite face database at ~/.framedex/faces.db, so the index travels with the drive instead of locking creators into a proprietary platform.

What to do next

If you sit on archives that are not searchable today, point framedex at a 50-clip test folder before committing a full drive. Inspect the generated sidecars, then read the Gemma model card to budget your local VRAM. Pair this with our writeup on Gemma 4 inside ComfyUI if you want the same model serving creative pipelines beyond video.