گرافیفای: بهجای grep زدن تو فایلها، از گراف پروژه سؤال بپرس
خلاصهٔ کاملتر
گرافیفای (graphify) یه ابزار خط فرمانه که بعد از نصب، داخل دستیار کدنویسی هوش مصنوعیتون یه اسکیل ثبت میکنه؛ با یه دستور، کل پروژه — کد، مستندات، PDF، تصویر و حتی ویدیو — به یه گراف دانش تبدیل میشه که میشه ازش پرسوجو کرد. ایدهٔ اصلی که تو معرفی پروژه اومده اینه: بهجای گشتن بین فایلها، از گراف سؤال بپرس.
نکتهٔ فنی مهمش اینه که کد با AST و کتابخانهٔ tree-sitter پارس میشه: قطعی (deterministic)، بدون مدل زبانی و کاملاً روی دستگاه خودت. فقط اگه بخوای مستندات و مدیا هم پردازش بشن، یه پاس معنایی با مدل دستیارت یا کلید API خودت انجام میشه. یعنی گراف کد عملاً بدون مصرف اعتبار مدل ساخته میشه.
تفاوت دومش با ابزارهای مشابه اینه که vector index نیست؛ نه embedding، نه vector store. یه گراف واقعیه که پیمایشش میکنی. سه دستور اصلی داره: پرسیدن یه سؤال به زبان ساده که یه زیرگراف مرتبط برمیگردونه، توضیحدادن یه مفهوم، و ردیابی مسیر بین دو چیز:
$ graphify explain "APIRouter"
Node: APIRouter
Source: routing.py L2210
Degree: 47
Connections (47):
--> Dependant [uses] [INFERRED]
--> .get() [method] [EXTRACTED]
<-- __init__.py [imports] [EXTRACTED]همونطور که تو خروجی بالا میبینید، هر یال یه برچسب اعتماد داره: EXTRACTED یعنی این رابطه صراحتاً تو خود سورس بوده و INFERRED یعنی گرافیفای خودش استنتاجش کرده. این تفکیک ساده ولی مهمه، چون میفهمی کجا داری به دادهٔ قطعی تکیه میکنی و کجا به حدس ابزار.
خروجی نهایی سه فایله: یه graph.html که تو مرورگر باز میشه و میشه روی نودها کلیک و فیلتر و جستوجو کرد، یه GRAPH_REPORT.md با مفاهیم کلیدی و ارتباطهای غیرمنتظره، و یه graph.json که گراف کامله و بعداً بدون خوندن دوبارهٔ فایلها میشه ازش پرسوجو کرد.
از قابلیتهای دیگهش میشه به شناسایی «god node»ها (پرارتباطترین مفاهیم که همهچی ازشون رد میشه)، تقسیم گراف به زیرسیستمها با الگوریتم Leiden، و رزولوشن ارتباطهای بینفایلی مثل calls و imports و inherits روی حدود ۴۰ زبان اشاره کرد. جالب اینکه کامنتهایی مثل # NOTE: و # WHY: و ارجاع به ADR/RFC هم به نود درجهیک تبدیل میشن و به کد وصل میمونن.
تیم پروژه بنچمارکهایی هم منتشر کرده: روی LOCOMO مقدار recall@10 برابر ۰.۴۹۷ گزارش شده در برابر ۰.۱۴۹ برای supermemory و ۰.۰۴۸ برای mem0، هرچند تو دقت پاسخگویی همون بنچمارک با ۴۵.۳٪ کمی از supermemory (۴۹.۷٪) عقبتره. روی LongMemEval-S عدد ۷۶٪ گزارش شده که با dense RAG برابره. طبیعتاً این اعداد خودگزارشیان، ولی جزئیات هارنس و دستورهای بازتولید هم منتشر شده.
نصبش با uv یا pipx انجام میشه و پکیج رسمی روی PyPI اسمش graphifyy با دو تا y ـه (بقیهٔ پکیجهای مشابه وابسته به این پروژه نیستن). با Claude Code، Cursor، Codex، Gemini CLI، GitHub Copilot و بیشتر از ۱۵ دستیار دیگه کار میکنه و افزونههای اختیاری برای PDF، آفیس، ویدیو، MCP و پوش به Neo4j هم داره.
نکات کلیدی:
- کل پروژه به گراف دانش قابلپرسوجو تبدیل میشه، بهجای جستوجوی متنی بین فایلها
- پارس کد با tree-sitter، لوکال و بدون مدل زبانی؛ دادهای از دستگاه خارج نمیشه
- هر یال با EXTRACTED یا INFERRED مشخص میکنه صریح بوده یا استنتاجشده
- نه embedding نه vector store؛ یه گراف واقعی برای پیمایش
- خروجی: گراف تعاملی HTML، گزارش Markdown و فایل JSON قابلپرسوجو
- بنچمارکهای خودگزارشی روی LOCOMO و LongMemEval-S منتشر شده
- پکیج رسمی PyPI اسمش graphifyyـه و با بیشتر از ۲۰ دستیار کدنویسی کار میکنه




