Об этом проекте

fff — это набор инструментов и SDK для поиска файлов, предназначенный как для людей, так и для ИИ-агентов. Он обеспечивает устойчивый к опечаткам поиск по путям и содержимому, доступ к файлам с учётом частоты и недавности (frecency), фоновый наблюдатель и лёгкий индекс содержимого в памяти. Проект утверждает, что он быстрее таких CLI-инструментов, как ripgrep и fzf, в долгоживущих процессах, выполняющих поиск более одного раза. Набор доступен в нескольких формах интеграции: - **MCP-сервер**: работает с Claude Code, Codex, OpenCode, Cursor, Cline и любым клиентом с поддержкой MCP. Предоставляет инструменты `ffgrep`, `fffind` и `fff-multi-grep`. Устанавливается однострочными скриптами (Linux/macOS/Windows) или через Homebrew. - **Плагин Neovim (fff.nvim)**: изначально основная форма проекта. Предоставляет `find_files`, `live_grep`, `live_grep_under_cursor` и программные API `file_search`/`content_search`. Поддерживает установку через lazy.nvim и vim.pack, с загрузкой готового бинарника или сборкой через cargo в качестве запасного варианта. - **Расширение для агента Pi**: заменяет встроенные инструменты grep/find в pi на реализации FFF, с тремя режимами работы (tools-and-ui, tools-only, override). Ключевые возможности включают память frecency, которая поднимает в рейтинге часто открываемые файлы (прогрев по истории git touch), подсказки с приоритетом определений, классифицирующие строки определений кода на стороне Rust, поиск с умным учётом регистра и автоматическим переходом к нечёткому поиску при отсутствии совпадений, а также git-аннотации, помечающие изменённые, неотслеживаемые и проиндексированные файлы. Плагин Neovim поддерживает синтаксис ограничений в запросах (например, `git:modified`, `*.rs`, `!test/`, glob-шаблоны), множественный выбор с интеграцией в список quickfix, настраиваемую компоновку с панелью предпросмотра, режимы live grep (обычный, regex, нечёткий) и отладочную панель информации о файле с метаданными и разбивкой оценок. И `file_search`, и `content_search` возвращают структурированные результаты с поддержкой пагинации. Проект распространяется под лицензией MIT и используется в opencode, nushell и других проектах. Он написан на Rust с привязками для нескольких языков.