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. 라이브러리는 프런트엔드가 호출하는 두 가지 핵심 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에서 직접 가져온 것입니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트