The problem
Operating-system file search is literal: if you don't remember the filename or an exact phrase inside the document, you're stuck scrolling through folders. Most of what we actually remember about a file is what it was about — "that PDF on internship tax forms," "the notes from the systems lecture" — and literal search can't answer questions like that.
The approach
- Index meaning and text together. Files are indexed two ways: FlexSearch builds a fast keyword index, while BAAI/bge-base-en-v1.5 embeddings stored in LanceDB capture semantic meaning. Queries hit both indexes and the results are merged, so exact matches and "close in meaning" matches both surface.
- LLM-assisted search. A language model helps interpret natural-language queries, so you can ask for files the way you'd describe them to a person.
- Local-first. Indexing and vector search run on the user's machine — file contents don't need to leave the laptop to become searchable.
Highlights
- Hybrid retrieval: FlexSearch keyword index + LanceDB vector search over bge-base-en-v1.5 embeddings.
- Natural-language queries with LLM assistance.
- Cross-platform desktop app built with Electron and React.
- Live at echoforfiles.com.
Stack
- Electron
- React
- TypeScript
- FlexSearch
- LanceDB
- bge-base-en-v1.5
- LLM integration