为什么需要
AI Agent 在大型代码库里反复调 grep 和 find,每次都重新遍历整个目录——token 烧得飞快、回复延迟肉眼可见。fff 是 dmtrKovalenko 专门为这种场景写的文件搜索工具:frecency 排序(最近最常访问的优先)、git 状态感知、定义优先提示、智能大小写,所有优化都为了「Agent 问一次就给精确答案」。
最初的形态是 Neovim 插件,后来发现 Claude Code、Cursor、Codex 这些 Agent 都需要同样的能力——准确、快速的文件搜索作为库和 MCP server。所以重构成了现在这版。
已经在 opencode、nushell 等项目里作为默认文件搜索。fff-mcp 提供三个工具:ffgrep、fffind、fff-multi-grep,在 Claude Code 里加一行配置就能用。
怎么用
MCP server 模式(最常用):
bash
# Linux / macOS 一行安装
curl -L https://dmtrkovalenko.dev/install-fff-mcp.sh | bash
# macOS 也可 Homebrew
brew install dmtrKovalenko/fff/fff-mcp
安装脚本会自动把 fff-mcp 加到 Claude Code / Cursor / Cline 的 MCP 配置里。之后 Agent 收到「找一下支付模块的所有文件」这类请求,会自动用 fff 而不是反复跑 grep。
CLI 直接用:
bash
fff "src/**/*.ts"
fff --content "TODO"
fff --recent
注意事项
- Apache 2.0 开源
- Rust 实现,内存索引常驻;首次启动会基于 git log 做 warm-up
- 长会话中比 ripgrep 快很多,单次冷启动差别不大
- 支持 Linux、macOS、Windows
- 不需要任何外部服务,本地运行
- 大型 monorepo 里 frecency 学习需要几次交互才有效用
- 与 fzf 不冲突:fzf 是交互式选择器,fff 是后台索引+搜索引擎