so i built sift. it's a CLI that indexes your markdown into a SQLite file, and a web component that loads it in the browser via range requests. the ML model runs client-side through Transformers.js — no server, no API keys, just static files.
keyword results show up immediately through FTS5, and once the model loads (~2s) they upgrade to semantic.
pip install sift-search
sift index ./docs -o public/sift-index.db
here's a side-by-side on FastAPI's full docs so you can see the difference: https://siftsearch.netlify.app/compare.htmlwould appreciate feedback from anyone running a docs site. (first release, happy to hear what's broken)