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, backed by local vector databases — file contents don't need to leave the laptop to become searchable.
- Modular by design. The UI, the search indexing layer, and the embedding pipeline are separated behind clear boundaries, so the embedding model or the index can be swapped without touching the interface.
Beyond search
Finding a file is only half of file management. Echo pairs search with a file-statistics dashboard that surfaces real-time analytics about a directory — what's there, how much of it, and where the weight sits — while you're working in it. Common operations were reworked to cut the number of clicks they take, on the theory that a file explorer is judged by its most repeated interactions, not its most impressive one.
Highlights
- Hybrid retrieval: FlexSearch keyword index + LanceDB vector search over bge-base-en-v1.5 embeddings.
- Semantic disambiguation of similarly named files and folders.
- Natural-language queries with LLM assistance.
- Real-time file-statistics dashboard built with modern UI components.
- Modular architecture separating UI, indexing, and embedding pipelines.
- 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