Skip to content

fff

A fast file search toolkit for people and AI agents, usable from Neovim, code, or an MCP server.

Stars
11.2k
Forks
477
Licence
MIT
Language
Rust
Last update
5 days ago
Type
Library

What it is

FFF is a file search toolkit that finds files by path and searches file contents, tolerating typos and ranking files by how often you use them. It keeps a lightweight in-memory index with a background watcher, so repeated searches in a long-running process are fast. It ships as an SDK for several languages, a Neovim plugin, and an MCP server that AI coding agents can call.

  • Give an AI coding agent fast path and content search over a git-indexed project through the MCP server
  • Add typo-tolerant file search to a Neovim setup
  • Embed file and content search in a Python or Node.js tool
  • Search for declarations in a codebase with the definition search option

Great for

  • Developers building an AI coding agent or editor that needs fast file search
  • Neovim users who want fuzzy file and content search
  • People running an MCP-capable client who want agents to search a codebase through a resident index
  • Teams embedding file search in Rust, Python, Node.js, or Bun applications

Not ideal for

  • Someone who only needs a one-off search in a terminal, since the README says the gains come from long-running processes that search more than once and plain ripgrep or fzf may be enough
  • Users who want a polished end-user desktop app, because the README describes a toolkit and SDK rather than a standalone app
Step-by-step guide: how to use fffInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Homebrew (for the Homebrew install route)

    Homebrew install of the MCP server

    brew install dmtrKovalenko/fff/fff-mcp

    Register the Homebrew-installed server with Codex

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

    Run it

    • Install the fff-mcp binary using the one-line installer or Homebrew.
    • Register the server with your MCP client, using the absolute path to the binary.
    • Restart the client or start a new task so it loads the server.
    • Ask the agent to "use fff" and confirm it calls the grep, find_files, or multi_grep tools.
  3. 3

    Get the most out of it

    • Pass a known directory or module in the first search using the path option to narrow scope.
    • Use definitions_only to search declarations rather than all matches.
    • Use mode regex or literal with paths and globs for ripgrep-style searches.
    • Add the recommended prompt from the README to your CLAUDE.md or equivalent file.

Downloads

Strengths

  • The README describes benchmark results for MCP versus shell search, with the setup and test conditions stated
  • Available across several languages and editors, with MIT license
  • Actively maintained, with a recent push and a published release

Trade-offs

  • Benchmark figures in the README come from the project's own tests and their specific repositories and models, so real gains will vary
  • Many options (globs, modes, context, stages) make the full behavior complex to learn from the README alone

How it compares

ProjectStarsTypeLevelUpdatedBest for
fff (this)11.2kLibraryintermediate5 days agoDevelopers building an AI coding agent or editor that needs fast file search
fzf83.9kDev toolbeginner8 days agoCommand-line users who often search file names or command history
telescope.nvim19.8kLibraryintermediate10 days agoNeovim users who want fast fuzzy search for files and text
fzf.vim10.3kLibrarybeginner1 months agoVim or Neovim users who already use fzf and want ready-made search commands
oh-my-pi37.5kCLIintermediate4 days agoDevelopers who want an AI agent working inside a terminal on their own codebase
Archon23.8kDev toolintermediate4 days agoDevelopers who want AI coding runs to follow the same plan, test and review steps each time

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.