这个项目能做什么

fff 是一个面向人类用户和AI代理的文件搜索工具包及SDK。它提供容错路径与内容搜索、基于频率排序(frecency)的文件访问、后台监控器以及轻量级内存内容索引。该项目声称,在需要多次搜索的长期运行进程中,其速度优于ripgrep和fzf等CLI工具。 该工具包提供多种集成形式: - **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`以及编程式`file_search`/`content_search` API。支持lazy.nvim和vim.pack安装,可下载预构建二进制文件或回退到cargo构建。 - **Pi代理扩展**:将pi的原生grep/find工具替换为FFF实现,提供三种运行时模式(工具与界面、仅工具、覆盖)。 主要特性包括:频率排序记忆功能,可提升频繁打开文件的排名(通过git触摸历史预热);定义优先提示功能,在Rust端对代码定义行进行分类;智能大小写搜索,在无匹配时自动回退到模糊搜索;以及git感知注释功能,可标记已修改、未跟踪和已暂存的文件。 Neovim插件支持查询中的约束语法(例如`git:modified`、`*.rs`、`!test/`、glob模式)、多选与quickfix列表集成、带预览面板的可配置布局、实时grep模式(纯文本、正则、模糊)以及显示元数据和分数细分的文件信息调试面板。`file_search`和`content_search`均返回带分页支持的结构化结果。 该项目采用MIT许可证,已被opencode、nushell等项目使用。它使用Rust编写,并提供多种语言的绑定。