dmtrKovalenko/fff

The fastest and the most accurate file search SDK for AI agents, Neovim, Rust, C, Python, Bun and NodeJS

fff – 高速ファイル検索ツールキット

概要 – fff は Rust ベースのライブラリ(小さなバイナリ付き)で、コードベースのインメモリインデックスを構築し、超高速でタイポに寛容なファイル名およびコンテンツ検索を提供します。人間(Neovim UI 経由)と、大量のテキストをモデルに送信せずにファイルを検索する必要がある AI エージェントの両方で使用できるように設計されています。

主な機能

  • タイポ耐性検索 – パスとファイルコンテンツの両方でファジーマッチング。
  • 頻度ランク(frecency)結果 – 頻繁に開くファイルや最近変更されたファイルはスコアが高くなります。
  • バックグラウンドウォッチャー – ファイルの変更に応じてインデックスが自動更新され、Git 対応の注釈(変更済み、ステージ済み、最近のコミット)が付きます。
  • 軽量インメモリインデックス – 同じリポジトリを繰り返し検索する場合、ripgrep/fzf よりも高速です。
  • 複数のフロントエンド:
    • fff.nvim – ピッカー UI と Lua API(find_files、live_grep など)を提供する Neovim プラグイン。
    • MCP サーバー – Claude Code、Cursor、OpenCode などが使用する MCP プロトコルを実装する小さなバイナリ(fff-mcp)。エージェントに ffgrep や fffind などのツールを提供します。
    • Pi 拡張機能 – Pi AI アシスタント用のプラグインで、組み込みの grep/find ツールを置き換えることができます。

仕組み

  1. 初回使用時にバックグラウンドプロセスが設定されたルートディレクトリをスキャンし、Rust インデックスを構築し、frecency とクエリ履歴用のオプションの SQLite スタイルデータベースを保存します。
  2. 以降の検索はこのインデックスを RAM 内で直接クエリし、従来の CLI grep のディスク負荷の高いラウンドトリップを回避します。
  3. インデックスはファイルシステムウォッチャーによって最新に保たれます。Git ステータスはリポジトリの git メタデータを読み取って追加されます。
  4. ライブラリはフロントエンドが呼び出す 2 つのコア Rust 関数を公開します:
    • file_search(query, opts) – スコア、frecency データ、Git フラグを含むファイル/ディレクトリのリストを返します。
    • content_search(query, opts) – オプションの正規表現、ファジーフォールバック、スマートケース処理を備えた行レベルのマッチを返します。

典型的な使用法

  • Neovim では、ff を押して FFFind ピッカーを開き、fg でライブ grep、またはプラグインから Lua API を呼び出します。
  • AI アシスタントの場合、MCP サーバー(brew install dmtrKovalenko/fff/fff-mcp または提供されたインストールスクリプトを実行)をインストールし、アシスタントの設定に追加します。アシスタントはツールセットの一部として ffgrep/fffind を呼び出せます。
  • Pi では、pi install npm:@ff-labs/pi-fff を実行し、/fff-mode でモードを切り替えます。

AI/LLM ワークフローにとって重要な理由 大規模言語モデルはコンテキストウィンドウが限られています。モデルに高速でトークン効率の高いファイル検索サービスを問い合わせさせることで、リポジトリ全体をモデルに送信することを避け、インタラクションをスムーズに保てます。frecency と Git 対応のスコアリングは、モデルが最も関連性の高いファイルを最初に表示するのにも役立ち、幻覚を減らします。

インストールのハイライト

  • ワンライナースクリプト MCP サーバー用(Linux/macOS では curl … | bash、Windows では PowerShell)。
  • Homebrew フォーミュラ(brew install dmtrKovalenko/fff/fff-mcp)。
  • Neovim – dmtrKovalenko/fff をプラグインマネージャーに追加します。プラグインはプリビルドバイナリをダウンロードするか、Cargo でコンパイルします。
  • Pi – pi install npm:@ff-labs/pi-fff。

ライセンスとスポンサー

  • MIT ライセンス、永久オープンソース。
  • Anomaly (opencode.ai)、Mango Proxy、RapidProxy がスポンサー。

上記の詳細はすべてリポジトリの README から直接取得しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト