Foveate

Changelog

Last updated 19 September 2026

2.3.1 19 Sep 2026

fov grep now knows when not to use the index. Benchmarking 2.3.0 across six repositories showed it was slower than plain ripgrep in four of them — on a small project, or for a word that appears in thousands of files, handing ripgrep a long list of paths costs more than letting it read the folder. It now measures both before deciding, scans instead when the index cannot help, and says which it did. The thresholds come from that table and nothing else.

Where it does help, it helps more than before: on a 39,629-file repository a symbol search went 2.48 s → 0.15 s, and a word present nowhere 2.35 s → 0.08 s — against a fully warmed ripgrep. When it falls back it now applies your exclusion list to ripgrep too, so the command means the same thing either way.

2.3.0 19 Sep 2026

grep, over the files that can possibly match. rg across fifty repositories reads every one of them. Foveate already read them once, so fov grep names the handful worth opening and hands them to ripgrep — which still does the deciding, with its own regex rules, case rules, line numbers and exit codes.

Measured on 104,362 files across 50-odd repositories, both tools in the same run: 10.45 s → 0.97 s, 10.73 s → 0.77 s, 9.68 s → 0.72 s — 11 to 14× — with zero files missed and zero extra against ripgrep's own answer. Skipping the directory walk is not where that comes from: walking the tree takes 1.72 s of a 28 s search. Opening seven files instead of a hundred thousand is.

It is honest about its limits rather than quietly approximate. A pattern with regex characters is never narrowed — it scans in full and says so. A folder the index has not seen warns instead of confidently returning nothing. fov scope prints the file list on its own, for anything that takes one.

2.2.3 19 Sep 2026

The Settings screen works again. The re-index interval showed an empty dropdown that would not open, and the Licence row below it stayed blank — one undefined name in the page stopped the whole screen loading halfway through. Reported from the field; it shipped in 2.2.0 and survived three releases because nothing here had ever actually run the panel's own code. Now something does, and a check refuses any build where a name is used but never defined.

Settings also says where the folders live. Choosing which directories to index and editing the never-index list are on the Sources screen, and there is now a button in Settings that takes you there — because that is where people looked for them.

2.2.2 19 Sep 2026

Forgetting a folder can no longer quietly gut another one. If you indexed a project and later indexed the whole folder containing it, Foveate kept both — and forgetting the outer one deleted the inner one's files while leaving it on screen reporting “complete, 100 %” over nothing. Overlapping folders are now handled properly: adding a folder inside one you already index is refused, and it tells you which one already covers it; adding a folder that contains ones you already index absorbs them, without deleting a single document. Forget now takes the absorbed records with it and says what it touched.

Two smaller consequences of the same bug. The file count in Sources and fov status counted overlapping folders twice — on the machine this was found on it read 1,264,432 for 1,264,209 real files. And the background watcher subscribed to the same folder twice and re-checked it twice on every sweep. Both now count and watch each folder once.

2.2.1 19 Sep 2026

The first index of a folder is quicker. Foveate showed you what a folder would cost before starting, then walked it a second time to do the work — so a large folder was scanned twice, and the second scan printed nothing at all while it ran. It now walks once. Measured on a 300,000-file tree, three alternating runs of both builds: 1.6 to 1.8× less CPU.

2.2.0 19 Sep 2026

You can now tell Foveate what to index, from Foveate. Press ⌘K and choose a folder, or take one of the suggestions — Documents, Desktop, Downloads, your home folder, Applications — each of which shows what it will cost before anything starts. Until this release there was no such control anywhere in the app: the Sources screen's empty state read “Run fov index ~/Documents”, so the panel needed a terminal to do the one thing it exists for. Choosing folders is free, and always will be.

Everything is re-checked on a schedule — daily by default, and it costs almost nothing. A file whose size and modification time have not changed is never opened again. Measured on this project's own source tree: the first pass read 3.3 MB, the second read 0 bytes. That is what makes a schedule affordable, and it is why there was not one before. Set it in Settings, or with fov agent interval 6, or turn it off entirely. The sweep is for the changes live watching cannot see: a Mac that was asleep, a drive written to on another machine, an interrupted crawl, and an edit to the exclusion list.

Build output stays out of your results. Exclusions now understand *, so target* covers a target-agent/ sitting beside a target/; and any folder holding a CACHEDIR.TAG file is skipped whatever it is called, which is how cargo, Bazel and restic mark their own caches. Measured on this project: 3,343 files indexed before, 214 after, and the top results for a real query stopped being compiler dependency files. The default list is longer, there is a Restore defaults button for anyone who installed before it grew, and a first run now opens on Sources rather than on a search box over an empty index.

2.1.0 7 Sep 2026

A browser bridge: fov bridge lets Kiln's new tab search this index directly, so the files on your disks answer the same box your tabs and history do.

2.0.3 7 Sep 2026

No user-facing change: a measurement instrument and two fixes to the release gates. The hidden panel was measured at 0.0 window-server messages per second — the state it is in all day — and a new check fails the build if that ever exceeds 5.

2.0.2 6 Sep 2026

One Dock icon, actually. 2.0.0 gave the panel a Dock tile by removing a setting that turns out to apply to the whole app bundle — so the background file watcher, which never opens a window, quietly got an icon of its own too. Reinstalling could leave duplicates behind as well. Both are fixed, and three checks now fail the build if either comes back.

2.0.1 6 Sep 2026

Auto-update works again, and this time it is verifiable. The update manifest had been advertising 1.9.4, so 1.9.5, 1.9.6 and 2.0.0 were never offered to anyone — a manifest serving an old version is a perfectly valid response, so nothing noticed. It now advertises the shipped release.

The cause of the silence was 2.0.0's own single-instance guard: it turned away the headless self-test that is the only way the update path can be checked, so the check produced no output at all and read as a pass. The guard now steps aside for that one entry point, and a test fails if it ever stops doing so.

2.0.0 5 Sep 2026

The panel is visible now: a Dock icon and a colour-coded menu bar item (Search, Sources, Settings, Show in Dock, Start at login, Check for updates, Licence, Quit) — until v1.9.6 it had no icon at all between hotkey presses. Adds start at login, a configurable hotkey (⌃⌥Space by default), and a guarantee of exactly one instance, ever. The build is signed with a Developer ID.

Pricing changed from a 14-day trial to freemium. Foveate Free is the panel, forever, at no cost: the hotkey, the Dock icon, the menu bar item, and lexical search across every drive that is currently mounted. Foveate Pro ($39 once, one Mac) adds results from drives that are not plugged in, hybrid and ask (semantic) search, OCR and transcription on demand, and managing sources. Pro, 5 Macs is $79 once. Every install still gets 14 days of Pro; when it ends the app drops to Free rather than stopping.

1.9.1 30 Aug 2026

The panel moved to ⌃⌥Space. ⌥Space is Raycast's default, and a launcher you cannot summon is not a launcher. If another app already holds the new combo, Foveate now says so instead of failing to start without explanation.

1.9.0 29 Aug 2026

Signed auto-update. The check downloads one static file and sends no version, no identifier and nothing about your machine; the download is signature-verified before it is trusted. Switch it off in Sources or with fov update --set off. The CLI keeps updating through Homebrew.

1.8.0 29 Aug 2026

Audio and video are transcribed on device and indexed with timestamps, so a phrase in a two-hour recording is a result that tells you when it was said. Measured at 26× realtime. Opt-in per file — it never runs during an ordinary crawl.

1.7.0 29 Aug 2026

Manage sources from the panel: pause, re-crawl, forget, and edit the list of folder names that are never indexed. Adding a drive now shows the file count and time before it starts.

1.6.0 29 Aug 2026

Indexing no longer downloads your cloud files. iCloud, Dropbox, Google Drive, OneDrive and Proton placeholders are indexed by name and attributes and never opened.

1.3.0 29 Aug 2026

Three at once: a background agent so the index keeps up without a terminal open, image OCR on request, and a parallel crawl that lifts the throughput ceiling.

1.0.1 28 Aug 2026

The product site.

1.0.0 28 Aug 2026

First release. Unplugged-drive search, three retrieval modes, PDF and Office extraction, live FSEvents indexing, resumable crawling, network shares in beta, and the panel on ⌥Space.

Full release notes for every version are on GitHub.

Home Privacy Terms Refunds Support © 2026 dfacto.ai