Skip to content
repository radar
Coding & Dev Tools

📁fff.nvim

ACTIVE BREAKOUT

dmtrKovalenko/fff · homepage ↗

The fastest and the most accurate file search SDK for AI agents, Neovim, Rust, C, Python, Bun and NodeJS

⭐ Very popular: 10k stars, gaining about 116 a week

View on GitHub ↗

repo profile

vintage 2025 1 year old
delivery product
language Rust
license MIT

momentum

total stars 10k
stars added last week +116
binary downloads 243 total · GitHub releases
commits / week 9 steady · -17% vs prior mo
issues closed 90% ~2d to close, median
contributors 91 (+3 in 15d)
release cadence fortnightly
last activity today

durability

backing community / independent
openness permissive
bus factor 1 solo
top-author share 61% 6 mo

bus factor = how many people it takes to cover more than half the commits (6 months). 1 is a solo project; higher means the work is spread across a team. top-author share is the single busiest author's slice of those commits.

since we covered it

monthly average + 1k/mo (+38%/mo) · + 6k total since PR#31

why it's a big deal

  • Keeps a resident file index inside long-running processes so queries return in single-digit milliseconds instead of spawning ripgrep afresh each time; on a 500k-file Chromium checkout that is sub-10ms per query versus 3 to 9 seconds per ripgrep spawn.
  • Ships one search engine across Rust, C, Python, Bun, NodeJS and Neovim, plus an MCP server exposing ffgrep, fffind and fff-multi-grep to Claude Code, Cursor and Cline, so agents and editors query the same index.
  • Ranks results by frecency and returns cached git state (modified, staged, untracked, ignored) with every result, removing per-query git subprocess calls.

under the hood

  • Written in Rust with a mimalloc allocator and a single contiguous arena for string chunks, using roughly 360 bytes per file for content indexing and optional memory-mapped backing with a default 10MB per-file limit.
  • Offers three grep modes, plain literal via SIMD memmem, regex via the Rust regex crate, and fuzzy via Smith-Waterman per line, with SIMD-accelerated fuzzy path matching and automatic fallback to fuzzy when exact matches return zero.
  • Uses platform-specific filesystem APIs such as getdents64 on Linux and NTFS APIs on Windows, a background watcher for incremental index updates, and a byte-level scanner that tags definition lines like struct, fn, class, def and impl.

Radar summary, generated from the project's public sources

star history

PR#31 · 4k10k now Jul 2025Aug 2026
  1. PR#31 4k 2026-04-08
  2. now 10k + 6k since first covered

curve is sampled from GitHub's star history, plus our own daily readings since we covered it; the dashed stretch is before we first covered it, the solid line since. figures at coverage are the numbers we printed then (approx.), current count is live.

understory

Output and attention are roughly in balance.

-1 understory score output 70 · clout 71
Aug 2025 Jul 2026
  • output, commits & releases
  • clout, star velocity

output = commits & releases; clout = star velocity, both 0 to 100 monthly indices; the gap where output runs above clout is the understory. The understory →

covered in

  • PR#31 2026-04-08 below the radar

    Rust-powered fuzzy file finder for Neovim with a dedicated background index

similar projects

compare these →
  • RTK

    7.6× the stars

    CLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies

    76k ACTIVE
  • 🦀 DeepSeek-TUI

    4.1× the stars

    Open-source, community-driven agent harness

    41k ACTIVE
  • 🐑 herdr

    3× the stars

    the runtime your coding agents live on

    30k ACTIVE

comments

Sign in with GitHub to add your blip on fff.nvim.

loading comments…