Repolode
dmtrKovalenko

dmtrKovalenko/fff

A fast, typo-tolerant file and content search toolkit for Neovim, AI agents, and Rust, Node, Bun, Python, and C applications.

Stars
11,153
Forks
468
Open issues
80
Last commit
11 hours ago

What is it?

FFF is a file search toolkit that combines typo-tolerant path and content search, frecency-ranked file access, a background file watcher, and a lightweight in-memory content index. It is aimed at long-running processes that search repeatedly, where keeping the index resident avoids the cost of starting a new CLI such as ripgrep or fzf on every query.

The project ships in several forms: a fff.nvim plugin for Neovim with file and live grep pickers, an MCP server for clients like Claude Code, Codex, OpenCode and Cursor, a Pi agent extension, a Rust crate named fff-search, a C library with a header file, and a TypeScript SDK for Node.js and Bun. Each shares the same core search engine.

Search supports glob and regex modes, git status constraints such as git:modified, and definition-first classification that surfaces declarations ahead of ordinary usages in grep results.

Key features

  • 01Typo-tolerant fuzzy matching for both file paths and file contents.
  • 02Frecency ranking that moves recently and frequently opened files higher.
  • 03Background file watcher and in-memory content index for repeated searches.
  • 04Glob, regex, and literal search modes with context lines and cursor pagination.
  • 05Git-aware filters such as modified, staged, and untracked files.

Use cases

  • Giving an AI coding agent fast, accurate file and code search through MCP.
  • Replacing the file and grep pickers in Neovim with a faster, ranked alternative.
  • Building a custom file search feature into a Node.js, Bun, or Rust application.

Quick start

  1. 1

    Install the fff-mcp server with Homebrew (macOS/Linux)

    brew install dmtrKovalenko/fff/fff-mcp
  2. 2

    Register the installed binary with Codex using its absolute path

    codex mcp add fff -- "$(brew --prefix)/bin/fff-mcp"
  3. 3

    Or install the Pi agent extension from npm

    pi install npm:@ff-labs/pi-fff

Things to know

  • The Neovim plugin's build step downloads a prebuilt binary or falls back to compiling with cargo.
  • The published benchmark results were measured by the project itself on specific repos and models.

Topics

FAQ

What is fff?
A fast, typo-tolerant file and content search toolkit for Neovim, AI agents, and Rust, Node, Bun, Python, and C applications. FFF is a file search toolkit that combines typo-tolerant path and content search, frecency-ranked file access, a background file watcher, and a lightweight in-memory content index. It is aimed at long-running processes that search repeatedly, where keeping the index resident avoids the cost of starting a new CLI such as ripgrep or fzf on every query.
Is fff free to use? What license does it have?
fff is open source under the MIT license. Check the license terms before using it in commercial products.
Is fff still maintained?
Actively maintained. The last commit to fff was on Oct 20, 2026.
What can I use fff for?
Giving an AI coding agent fast, accurate file and code search through MCP. Replacing the file and grep pickers in Neovim with a faster, ranked alternative. Building a custom file search feature into a Node.js, Bun, or Rust application.
How do I install fff?
Install the fff-mcp server with Homebrew (macOS/Linux): brew install dmtrKovalenko/fff/fff-mcp Register the installed binary with Codex using its absolute path: codex mcp add fff -- "$(brew --prefix)/bin/fff-mcp" Or install the Pi agent extension from npm: pi install npm:@ff-labs/pi-fff
Where can I get fff?
The source code and installation instructions are on GitHub: https://github.com/dmtrKovalenko/fff

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects