AIエージェントもNeovimも爆速ファイル検索!タイポにも強い賢いファインダー — fff.nvim

dmtrKovalenko/fff.nvimRust3.8k

fff.nvimは、AIエージェントやNeovim(テキストエディタ)向けに作られた、超高速なファイル検索ツールです。ファイル名のあいまい検索、テキスト内容の全文検索(grep)、パターン指定(glob)を1つのツールでこなせます。最大の特徴は「メモリ機能」で、過去にどのファイルをよく開いたか(frecency)やGitの状態などを記憶し、AIエージェントが最適な検索結果を素早く見つけられるようにします。タイプミスに強いあいまい検索も備えており、10万ファイル規模のリポジトリでも快適に動作します。AIコーディングツール(Claude Code、Codexなど)と連携して使うことで、AIがファイルを探す時間とトークン消費を大幅に削減できます。

🔥 なぜ話題?

AIコーディングエージェント(Claude Code、OpenAI Codexなど)の普及に伴い、AIがコードベース内のファイルを効率よく見つけるための仕組みが強く求められています。fff.nvimはAIの検索回数とトークン消費を減らす「メモリ付きファイル検索」という新しいアプローチで、AIツールのコスト削減・高速化に直結する点が注目を集めています。

💡 こう使える!

例えば、Claude Codeを使って大規模なプロジェクトのコード修正をAIに依頼するとき、fff.nvimをMCPサーバーとして接続しておくと、AIが『この機能のコードはどこにある?』と探すときに、過去の編集履歴やGitの変更状況をもとに最適なファイルを一発で見つけてくれます。通常ならAIが何度もファイルを読み漁って無駄なやり取りが発生するところを、大幅に短縮できます。

ユースケース: AIコーディングエージェントやNeovimユーザーが、大規模プロジェクトの中から目的のファイルを素早く正確に見つけるために使うツール

  • AIエージェント向けMCPサーバーとして動作し、ファイル検索のトークン消費と往復回数を大幅削減
  • frecency(頻度×最新度)やGitステータスを記憶する「メモリ機能」で検索精度が向上し続ける
  • 10万ファイル・8GBのリポジトリでも快適に動くタイプミス耐性の高いあいまい検索
GitHubで見る →

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

技術情報

言語

Rust

ライセンス

MIT

最終更新

2026-04-05

スター数

3,800

フォーク数

157

Issue数

53

トピック

filesearchluaneovimneovim-pluginrust

技術詳細

アーキテクチャ・仕組み

  • コア部分はRustで実装されており、高速なファジーマッチング・grep・グロブ処理を実現
  • MCP(Model Context Protocol)サーバーとして動作し、AIエージェントにファイル検索ツールを提供
  • Neovimプラグインとしても動作し、Luaで設定・拡張が可能
  • Smith-Watermanスコアリング(バイオインフォマティクス由来のアルゴリズム)によるファジーマッチング
  • 独自のグロブライブラリ zlob を使用

メモリ・スコアリングシステム

  • Frecency(頻度×最新度): よく開くファイルや最近開いたファイルを優先表示
  • コンボブースト: 同じクエリで繰り返し開いたファイルにボーナススコアを付与(min_combo_countで閾値設定可能)
  • Git連携: ファイルのGitステータス(変更済み、ステージ済み、未追跡など)を検索結果に反映
  • クエリ履歴: 過去の検索クエリと結果を記録し、検索精度を向上

検索モード

ファイル検索

  • ファジー(あいまい)マッチング
  • 制約フィルタ: git:modified, test/, !除外, ./**/*.{rs,lua}(glob)の組み合わせ可能

Live Grep(全文検索)

3つのモードを <S-Tab> で切り替え可能:

  • Plain: リテラル(そのまま)マッチ
  • Regex: 正規表現対応([a-z], foo|bar, \b など)
  • Fuzzy: Smith-Watermanによるあいまいマッチ(例: mtxlkmutex_lock

追加のフィルタ: *.md, *.{c,h} での拡張子絞り込み、src/main.rs での単一ファイルgrep

クロスモード提案

  • ファイル検索で結果がない場合 → grep結果を提案として表示
  • grep検索で結果がない場合 → ファイル名マッチを提案として表示

対応環境

  • Neovim: 0.10.0以上
  • インストール: ビルド済みバイナリの自動ダウンロード、またはRust (rustup) からのソースビルド
  • NixOS: nix run .#release でビルド可能
  • AIエージェント連携: Claude Code, Codex, OpenCode などMCP対応エージェント

パフォーマンス

  • Linuxリポジトリ(10万ファイル、8GB)での動作デモあり
  • grep時の time_budget_ms(デフォルト150ms)でUI フリーズを防止
  • max_results(デフォルト100)、max_matches_per_file(デフォルト100)で結果量を制御
  • max_threads(デフォルト4)で並列処理スレッド数を設定可能

主な機能一覧

  • ファジーファイル検索、Live Grep、マルチグレップ
  • Git ステータスのサインカラム表示・テキストカラーリング
  • マルチセレクト&クイックフィックスリスト連携(<Tab> で選択、<C-q> で送信)
  • ファイルプレビュー(サイズ制限、チャンク読み込み、バイナリ検出、ImageMagick情報表示)
  • .gitignore.ignore ファイルによるフィルタリング
  • フレックスレイアウト(画面幅に応じたプレビュー配置自動切替)
  • クエリ履歴のサイクル(<C-Up>
  • 豊富なハイライトカスタマイズ

コマンド一覧

  • :FFFScan - ファイル再スキャン
  • :FFFRefreshGit - Gitステータス更新
  • :FFFClearCache [all|frecency|files] - キャッシュクリア
  • :FFFHealth - ヘルスチェック
  • :FFFDebug [on|off|toggle] - デバッグモード切替
  • :FFFOpenLog - ログファイルを開く

制約・注意点

  • 現在ベータ段階で、デバッグモード有効での協力が推奨されている
  • ログファイルは ~/.local/state/nvim/log/fff.log に保存される

インストール・クイックスタート

MCP(AIエージェント向け)インストール

curl -L https://dmtrkovalenko.dev/install-fff-mcp.sh | bash

インストール後、表示される指示に従ってClaude Code、Codex、OpenCodeなどに接続します。CLAUDE.md に以下を追記するだけで利用開始できます:

For any file search or grep in the current git indexed directory use fff tools

Neovim(lazy.nvim)インストール

{
  'dmtrKovalenko/fff.nvim',
  build = function()
    require("fff.download").download_or_build_binary()
  end,
  lazy = false,
  keys = {
    { "ff", function() require('fff').find_files() end, desc = 'FFFind files' },
    { "fg", function() require('fff').live_grep() end, desc = 'LiFFFe grep' },
  }
}

Neovim 0.10.0以上が必要です。ビルド済みバイナリが自動ダウンロードされるか、Rustツールチェーンからビルドされます。

過去のトレンド履歴

関連リポジトリ

ターミナルから呼べるAIプログラマー!OpenAI公式のコーディングエージェント — codex

openai/codexRust72.3k

Codex CLIは、OpenAIが提供するターミナル(コマンド入力画面)上で動くAIコーディングエージェント(プログラミングを手伝ってくれるAIアシスタント)です。パソコンのターミナルで「codex

コードだけじゃない!研究・執筆・自動化まで何でもこなすオープンソースAIエージェント — goose

aaif-goose/gooseRust38.6k

gooseは、あなたのパソコン上で動く汎用AIエージェント(人間の代わりに作業を進めてくれるAIアシスタント)です。プログラミングだけでなく、調べ物、文章作成、データ分析、日常的な作業の自動化など幅広

コード提案だけじゃない!インストール・実行・編集・テストまで全自動のAIエージェント — goose

block/gooseRust37.5k

gooseは、自分のパソコン上で動くオープンソースのAIエージェント(自律的に作業をこなすAIアシスタント)です。単なるコード補完ではなく、プロジェクトをゼロから構築したり、コードを書いて実行したり、

AIプログラミングツールをまとめて管理!Claude、OpenAI、Geminiを一つのアプリで — cc-switch

farion1231/cc-switchRust21.1k

cc-switchは、Claude Code、OpenAI Codex、Google Geminiといった人気のAIプログラミングツールを一つのデスクトップアプリで使えるオールインワンツールです。Wi

カメラなし・ウェアラブルなし!WiFi電波だけで人の姿勢・呼吸・心拍を透視する — wifi-densepose

ruvnet/wifi-denseposeRust20.8k

wifi-denseposeは、普通のWiFi電波を使って、カメラや身に着けるセンサーなしで人の姿勢推定・呼吸数・心拍数の検出・存在検知を行うシステムです。WiFiルーターが部屋中に飛ばしている電波が