Local-first semantic image explorer for screenshots and photos.
This snapshot keeps the workflow intentionally small:
- visual embeddings with OpenCLIP
- a local Qdrant
imagescollection - a tiny shared search core in
search_core.py - a polished local FastAPI frontend in
web_app.py - the original CLI entrypoints in
search.pyandindex_images.py
search_core.py- shared CLIP + Qdrant search helperssearch.py- interactive and one-shot CLI searchindex_images.py- image indexing scriptweb_app.py- minimal local frontend and APIimages/- indexed image source folder
Index the default image folder:
uv run python index_images.pyIndex arbitrary folders recursively:
uv run python index_images.py ~/Pictures ~/DocumentsRun interactive semantic search:
uv run python search.pySearch from the command line:
uv run python search.py "mongodb docker error"Launch the local web UI with:
uv run python web_app.pyor:
uv run uvicorn web_app:app --reloadThe UI provides:
- a minimal search panel with pink-accented glass surfaces
- result cards with thumbnails, scores, and filenames
- a large preview pane for the selected image
- safe local image serving from the
images/folder
The next iteration should harden the desktop packaging workflow and add richer browsing interactions such as image-to-image drag search and document-specific previews.