Point it at a folder and it reads every document in there (PDFs, Word files, notes, code) directly on your computer. Nothing gets uploaded, there's no account, and there's nothing to install. Type what a file says, not what it's named, and get ranked results with the exact matching passage highlighted.
Only files it can pull real text from get indexed: everything else is either skipped outright or listed honestly as unread. Hidden files and folders (anything starting with a dot) are skipped automatically.
| Text-based PDFs, read page by page. A scanned PDF is a photo of a page, not text, so those come back listed as unreadable instead of silently dropped. There's no text recognition for scans yet. | |
| Word | .docx and legacy .doc, with section headings carried through into results. |
| PowerPoint & Excel | .pptx slides and .xlsx sheets. |
| Markdown & plain text | .md, .txt, logs, CSV, and similar text formats. |
| Code | JavaScript/TypeScript, Python, Go, Rust, Java, C/C++, SQL, and more, split by function or class instead of an arbitrary character count. |
Point it at any folder (contracts, research papers, a whole notes vault). It only ever asks to read, never to change anything.
Text comes out of every supported file right there in the browser. You can start searching whatever's ready within seconds while the rest of a big folder is still being read, and it remembers what it's already read, so opening the same folder again only rereads what changed.
Type “the contract with the termination clause” and it finds “either party may end this agreement”, even with no words in common between the two.
Matching by meaning is good at finding a passage that says something similar in different words. It's worse at an invoice number, an error code, or a name typed exactly right. Those can get buried under a more generic-sounding result. So every candidate from the meaning-based ranking is also checked for exact word and phrase matches, with rarer query words counted for more than common ones. The two signals combine into one score, which is also where the highlighted text in each result comes from.
“Short answers” is off by default. Switch it on and, after your ranked results render, it drafts a two-to-three sentence answer built only from the passages you already see, with a clickable source next to each claim. It stays optional because it needs one more one-time download and a few extra seconds per question, and because the ranked passages are already the answer for most searches. When nothing retrieved actually supports an answer, it says nothing rather than guess.
One more effect of ranking by meaning: scores compress into a narrow band, so a middling result can look deceptively close to your best one on paper. Results that trail well behind the top match get tucked behind a “more distant matches” toggle instead of sitting at the top of the list.