عن المشروع
fff هي مجموعة أدوات وSDK للبحث عن الملفات مصممة لكل من المستخدمين البشريين ووكلاء الذكاء الاصطناعي. توفر بحثًا مقاومًا للأخطاء الإملائية في المسارات والمحتوى، ووصولاً إلى الملفات مرتبًا حسب التردد (frecency)، ومراقبًا خلفيًا، وفهرس محتوى خفيف الوزن في الذاكرة. يذكر المشروع أنه أسرع من أدوات سطر الأوامر مثل ripgrep و fzf في العمليات طويلة الأمد التي تبحث أكثر من مرة.
المجموعة متاحة بعدة أشكال للتكامل:
- **خادم 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`. تدعم التثبيت عبر lazy.nvim و vim.pack، مع تنزيل ثنائي مُجمّع مسبقًا أو خيار البناء عبر cargo.
- **إضافة وكيل pi**: تستبدل أدوات grep/find الأصلية لـ pi بتطبيقات FFF، مع ثلاثة أوضاع تشغيل (أدوات وواجهة مستخدم، أدوات فقط، تجاوز).
تشمل الميزات الرئيسية ذاكرة التردد التي ترتب الملفات المفتوحة بشكل متكرر أعلى (تسخين من سجل لمس git)، وتلميحات تعريفية أولية تصنف أسطر تعريف الكود من جانب Rust، وبحث ذكي لحالة الأحرف مع تراجع تلقائي غامض عند عدم وجود نتائج، وتعليقات توضيحية مدركة لـ git تضع علامات على الملفات المعدلة وغير المتتبعة والمرحّلة.
تدعم إضافة Neovim بناء جملة القيود في الاستعلامات (مثل `git:modified` و `*.rs` و `!test/` وأنماط glob)، والاختيار المتعدد مع تكامل قائمة الإصلاح السريع، وتخطيط قابل للتكوين مع لوحة معاينة، وأوضاع بحث مباشر (عادي، تعبير عادي، غامض)، ولوحة معلومات تصحيح أخطاء الملفات تظهر البيانات الوصفية وتفاصيل النتائج. يعيد كل من `file_search` و `content_search` نتائج منظمة مع دعم التقسيم إلى صفحات.
المشروع مرخص بموجب MIT ويستخدم بواسطة opencode و nushell ومشاريع أخرى. مكتوب بلغة Rust مع روابط للغات متعددة.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.