Sobre el proyecto
fff es un toolkit y SDK de búsqueda de archivos diseñado tanto para usuarios humanos como para agentes de IA. Ofrece búsqueda de rutas y contenido resistente a errores tipográficos, acceso a archivos clasificados por frecuencia (frecencia), un monitor en segundo plano y un índice de contenido ligero en memoria. El proyecto afirma que es más rápido que herramientas CLI como ripgrep y fzf en procesos de larga duración que realizan múltiples búsquedas.
El toolkit está disponible en varias formas de integración:
- **Servidor MCP**: Funciona con Claude Code, Codex, OpenCode, Cursor, Cline y cualquier cliente compatible con MCP. Expone las herramientas `ffgrep`, `fffind` y `fff-multi-grep`. Se puede instalar mediante scripts de una línea (Linux/macOS/Windows) o Homebrew.
- **Plugin de Neovim (fff.nvim)**: Originalmente la forma principal del proyecto. Proporciona `find_files`, `live_grep`, `live_grep_under_cursor` y las APIs programáticas `file_search`/`content_search`. Admite instalación con lazy.nvim y vim.pack, con descarga de binarios precompilados o compilación con cargo como alternativa.
- **Extensión de agente Pi**: Reemplaza las herramientas nativas de grep/find de Pi con implementaciones de FFF, con tres modos de ejecución (herramientas-e-interfaz, solo-herramientas, anulación).
Las características clave incluyen memoria de frecencia que clasifica más alto los archivos abiertos con frecuencia (calentamiento a partir del historial de toques de Git), sugerencias de definición primero que clasifican líneas de definición de código en el lado de Rust, búsqueda con distinción de mayúsculas inteligente con respaldo difuso automático en caso de cero coincidencias, y anotaciones conscientes de Git que etiquetan archivos modificados, no rastreados y preparados.
El plugin de Neovim admite sintaxis de restricciones en consultas (por ejemplo, `git:modified`, `*.rs`, `!test/`, patrones glob), selección múltiple con integración de lista quickfix, diseño configurable con panel de vista previa, modos de grep en vivo (simple, regex, difuso) y un panel de depuración de información de archivos que muestra metadatos y desgloses de puntuación. Tanto `file_search` como `content_search` devuelven resultados estructurados con soporte de paginación.
El proyecto tiene licencia MIT y es utilizado por opencode, nushell y otros proyectos. Está escrito en Rust con enlaces para múltiples lenguajes.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.