इस प्रोजेक्ट के बारे में
fff एक फ़ाइल खोज टूलकिट और SDK है जो मानव उपयोगकर्ताओं और AI एजेंट दोनों के लिए डिज़ाइन किया गया है। यह टाइपो-प्रतिरोधी पथ और सामग्री खोज, फ्रीक्वेंसी-रैंक किए गए (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 build फ़ॉलबैक के साथ।
- **Pi एजेंट एक्सटेंशन**: pi के मूल grep/find टूल्स को FFF कार्यान्वयन से बदल देता है, तीन रनटाइम मोड के साथ (tools-and-ui, tools-only, override)।
मुख्य विशेषताओं में frecency मेमोरी शामिल है जो अक्सर खोली जाने वाली फ़ाइलों को उच्च रैंक करती है (git टच इतिहास से वार्म-अप), definition-first हिंटिंग जो Rust पक्ष पर कोड-परिभाषा पंक्तियों को वर्गीकृत करती है, स्मार्ट-केस खोज जिसमें शून्य मैच पर स्वचालित फ़ज़ी फ़ॉलबैक होता है, और git-जागरूक एनोटेशन जो संशोधित, अनट्रैक्ड, और स्टेज्ड फ़ाइलों को टैग करते हैं।
Neovim प्लगइन क्वेरीज़ में कंस्ट्रेंट सिंटैक्स का समर्थन करता है (जैसे, `git:modified`, `*.rs`, `!test/`, glob पैटर्न), quickfix सूची एकीकरण के साथ मल्टी-सेलेक्ट, प्रीव्यू पैन के साथ कॉन्फ़िगर करने योग्य लेआउट, लाइव grep मोड (plain, regex, fuzzy), और एक फ़ाइल जानकारी डीबग पैनल जो मेटाडेटा और स्कोर ब्रेकडाउन दिखाता है। `file_search` और `content_search` दोनों पेजिनेशन समर्थन के साथ संरचित परिणाम लौटाते हैं।
परियोजना MIT लाइसेंस प्राप्त है और opencode, nushell, और अन्य परियोजनाओं द्वारा उपयोग की जाती है। यह Rust में लिखी गई है जिसमें कई भाषाओं के लिए बाइंडिंग हैं।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.