프로젝트 소개
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 구현으로 교체하며, 세 가지 런타임 모드(tools-and-ui, tools-only, override)를 제공합니다.
주요 기능으로는 자주 여는 파일의 순위를 높이는 frecency 메모리(git 터치 기록에서 워밍업), Rust 측에서 코드 정의 줄을 분류하는 정의 우선 힌팅, 일치 항목이 없을 때 자동 퍼지 폴백을 제공하는 스마트 케이스 검색, 수정됨/추적되지 않음/스테이징된 파일을 태그하는 git 인식 주석이 있습니다.
Neovim 플러그인은 쿼리에서 제약 조건 구문(예: `git:modified`, `*.rs`, `!test/`, glob 패턴), quickfix 목록 통합을 통한 다중 선택, 미리보기 창이 있는 구성 가능한 레이아웃, 라이브 grep 모드(일반, 정규식, 퍼지), 메타데이터와 점수 분석을 보여주는 파일 정보 디버그 패널을 지원합니다. `file_search`와 `content_search` 모두 페이지네이션을 지원하는 구조화된 결과를 반환합니다.
이 프로젝트는 MIT 라이선스이며 opencode, nushell 및 기타 프로젝트에서 사용됩니다. Rust로 작성되었으며 여러 언어를 위한 바인딩을 제공합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.