मैंने एक AI कोडिंग एजेंट से अपने कोडबेस का नक्शा बनवाया, यह रहा नतीजा

मैंने एक AI कोडिंग एजेंट से अपने कोडबेस का नक्शा बनवाया, यह रहा नतीजा

Graft पर एक व्यावहारिक नज़र, एक ऐसा टूल जो AI कोडिंग असिस्टेंट्स को आपके कोड की याददाश्त देता है

हर बार जब आप किसी AI कोडिंग असिस्टेंट से बग ठीक करने या कुछ समझाने को कहते हैं, तो वह आमतौर पर शून्य से शुरू करता है। वह फ़ाइलें पढ़ता है, grep करता है, और धीरे-धीरे आपके प्रोजेक्ट की वही समझ दोबारा बनाता है जो उसके पास कल भी थी। आज 2 सितंबर 2026 है, और इस समस्या पर ज़्यादा ध्यान दिया जा रहा है क्योंकि AI कोडिंग एजेंट्स अब एक साल पहले की तुलना में कहीं ज़्यादा स्वायत्त, मल्टी-स्टेप काम कर रहे हैं, जिसका मतलब है कि हर सेशन में "शून्य से शुरू" करने की कीमत तेज़ी से बढ़ती है — समय और टोकन बिल दोनों में।

यही वह समस्या है जिसे Graft नाम का एक टूल हल करने की कोशिश करता है। मैंने इसे एक असली प्रोजेक्ट पर आज़माया, कोई खिलौना डेमो नहीं, और मैं आपको बताना चाहता हूँ कि यह असल में क्या करता है, इसने क्या पाया, और कहाँ कमी रही।

Graft असल में है क्या

Graft को अपने कोड का लाइब्रेरियन समझिए। इसके बजाय कि कोई AI एजेंट हर बार कुछ समझने के लिए फ़ोल्डरों में भटके, Graft एक बार एक इंडेक्स बनाता है: छोटी, आपस में जुड़ी टेक्स्ट फ़ाइलों का एक फ़ोल्डर जो बताता है कि आपके कोड का हर हिस्सा क्या करता है, कौन-सी फ़ंक्शन कौन-सी दूसरी फ़ंक्शन को कॉल करती है, और सब कुछ कैसे जुड़ा है।

यह दो परतों में काम करता है:

  1. एक स्ट्रक्चरल ग्राफ़, जो tree-sitter नामक कोड-पार्सिंग तकनीक से बनाया जाता है। इस परत को किसी AI मॉडल की ज़रूरत नहीं होती। यह बस आपके कोड को उसी तरह पढ़ता है जैसे एक कंपाइलर पढ़ता है, और फ़ंक्शन के नाम, क्लासेस, और उनके बीच के कनेक्शन निकालता है।
  2. एक वैकल्पिक कॉन्सेप्ट लेयर, जो एक AI मॉडल का उपयोग करके कोड के हर हिस्से का सरल भाषा में सारांश लिखती है। इस हिस्से को चलाने में पैसे लगते हैं क्योंकि यह AI मॉडल को कॉल करता है, इसलिए यह ऑप्ट-इन है।

महत्वपूर्ण बात: पहली परत, जो आपके पूरे कोडबेस का नक्शा बनाती है, मुफ़्त है और किसी API key की ज़रूरत नहीं। यह बस आपकी फ़ाइलों को लोकली पार्स करती है।

मैंने इसे एक असली प्रोजेक्ट पर टेस्ट करने का फ़ैसला क्यों किया

मैं एक रिपॉज़िटरी में कई असली कोडबेस पर काम करता हूँ: Kotlin में लिखी एक Android ऐप, एक आधुनिक वेब फ्रेमवर्क से बनी वेबसाइट, कुछ छोटी बैकएंड सर्विसेज़, और कुछ फुटकर कामों के लिए Python स्क्रिप्ट्स। उनमें से एक कोडबेस, Android ऐप, में एक ऐसी फ़ाइल है जो तीन हज़ार से भी ज़्यादा लाइनों तक बढ़ गई है क्योंकि नए फ़ीचर्स को अलग करने की बजाय उसी में जोड़ते गए। यह असली सॉफ़्टवेयर प्रोजेक्ट्स में बेहद आम स्थिति है। हर कोई "बाद में" रिफ़ैक्टर करने का इरादा रखता है, और बाद में आता ही नहीं।

ऐसी फ़ाइल को छूने से पहले, आप जानना चाहते हैं कि क्या किस पर निर्भर है, ताकि एक छोटा-सा बदलाव तीन स्क्रीन दूर कुछ चुपचाप न तोड़ दे। यह बिल्कुल वही सवाल है जिसका जवाब देने के लिए Graft बना है, इसलिए यह एक उचित और ईमानदार टेस्ट लगा।

सेटअप करना

चरण 1: टूल इंस्टॉल करें

Graft एक छोटे कमांड-लाइन प्रोग्राम के रूप में इंस्टॉल होता है, ठीक वैसे जैसे किसी भी डेवलपर टूल को अपनी मशीन पर ग्लोबली इंस्टॉल करते हैं:

npm install -g @nanonets/graft

चरण 2: देखें कि यह क्या बदलेगा

अपने प्रोजेक्ट में कुछ भी जोड़ने से पहले, आप इससे पूछ सकते हैं कि यह कौन-सी फ़ाइलें बनाएगा या बदलेगा, बिना कुछ छुए:

graft init --dry-run

इसने एक छोटी सूची दिखाई: AI कोडिंग असिस्टेंट्स के लिए कुछ कॉन्फ़िगरेशन फ़ाइलें, एक स्किल फ़ाइल, और जनरेट किए गए ग्राफ़ के लिए एक फ़ोल्डर। कुछ भी करने से पहले यह सूची देख पाना एक अच्छा संकेत है कि यह टूल आपके प्रोजेक्ट का सम्मान करता है।

चरण 3: इसे चलाएँ, सिर्फ़ इसी प्रोजेक्ट के लिए

इस तरह के कुछ टूल ग्लोबल कॉन्फ़िगरेशन भी लिखना चाहते हैं जो आपकी मशीन के हर प्रोजेक्ट को प्रभावित करे, सिर्फ़ उस प्रोजेक्ट को नहीं जिस पर आप काम कर रहे हैं। मैं ऐसा नहीं चाहता था, इसलिए मैंने सब कुछ लोकल रखने के लिए एक फ़्लैग का इस्तेमाल किया:

graft init --no-global -y

इसने प्रोजेक्ट की हर असली सोर्स फ़ाइल को पार्स किया (मेरे मामले में, Kotlin, TypeScript, JavaScript, और Python में 77 फ़ाइलें) और कुछ ही सेकंड में 561 अलग-अलग कोड के टुकड़ों और उनके बीच 1,229 कनेक्शनों का एक ग्राफ़ बनाया — बिना किसी AI मॉडल के और बिना किसी खर्च के।

इसे काम पर लगाना

यहाँ से बात दिलचस्प हुई। मैंने Graft से पूरे रिपो का एक ओरिएंटेशन मैप माँगा, और इसने तुरंत उस विशाल Android फ़ाइल के अंदर एक फ़ंक्शन को पूरे प्रोजेक्ट में सबसे ज़्यादा निर्भर कोड के रूप में चिन्हित कर दिया, जिसे दस अन्य जगहों से कॉल किया जा रहा था।

फिर मैंने एक और तीखा सवाल पूछा: मुझे दिखाओ कि अगर मैं उस एक फ़ंक्शन को बदलूँ तो क्या-क्या प्रभावित होगा। Graft ने पूरी श्रृंखला ट्रेस कर दी: हर स्क्रीन, हर हेल्पर फ़ाइल, हर वह जगह जहाँ उस फ़ंक्शन के व्यवहार का प्रभाव पहुँचता — तुरंत और मुफ़्त में।

वही जवाब कोड को मैन्युअली पढ़कर, या किसी AI असिस्टेंट से सब कुछ grep करवाकर पाने का मतलब होता लगभग 2,00,000 टोकन की फ़ाइल सामग्री पढ़ना। Graft के अपने अकाउंटिंग टूल ने दिखाया कि ग्राफ़ का दोबारा उपयोग करके इसने इतने टोकन बचाए। मिड-टियर Claude मॉडल की मौजूदा कीमत पर, यह एक ही बातचीत में लगभग चालीस सेंट की बचत है। यह छोटा लगता है, लेकिन यह बचत हर बार दोहराई जाती है जब कोई भी — इंसान या AI — उस कोडबेस के बारे में ऐसा ही सवाल पूछता है, और असली मूल्य यहीं जुड़ता है।

जो मुझे पसंद नहीं आया

इसमें सब कुछ बिना रुकावट के नहीं था। एक बार जोड़ने के बाद, Graft एक हुक इंस्टॉल करता है जो आपके AI कोडिंग असिस्टेंट को भेजे गए हर एक मैसेज पर चलता है, यह जाँचता है कि ग्राफ़ में कुछ काम का है या नहीं। दो अलग-अलग मौकों पर, जब मैंने साधारण बातचीत वाले सवाल पूछे जिनका कोड से कोई लेना-देना नहीं था, तब भी इसने ग्राफ़ चेक करने का सुझाव दिया। कोशिश करने में गलत नहीं था, लेकिन उन मौकों पर यह अनावश्यक शोर था।

यह भी साफ़ तौर पर समझना ज़रूरी है कि यह बहुत नया टूल है। इसे मेरे लिखने से सिर्फ़ कुछ महीने पहले प्रकाशित किया गया था, और इस छोटी अवधि में दर्जनों छोटे वर्शन रिलीज़ हो चुके हैं। बदलाव की यह गति रोमांचक है, लेकिन इसका यह भी मतलब है कि इसे पुराने डेवलपर टूल्स जैसी सालों की असली दुनिया की कठोर परीक्षा नहीं मिली है।

निष्कर्ष

Graft AI कोडिंग असिस्टेंट्स के साथ काम करते समय एक असली, रोज़मर्रा की परेशानी को हल करता है: कोड की लगातार पुनः खोज जो सेशनों के बीच कभी बदलता ही नहीं। एक सच में जटिल, मल्टी-लैंग्वेज प्रोजेक्ट पर, इसने सेकंडों में सटीक, उपयोगी जवाब दिए — मुफ़्त में, सिर्फ़ लोकल पार्सिंग से। यह कोई जादू नहीं है, और यह आपके वर्कफ़्लो में थोड़ी बातचीत ज़रूर जोड़ता है, लेकिन बदलाव करने से पहले AI असिस्टेंट को कोडबेस समझाने की नींव के रूप में, इसने अपनी जगह बना ली।

गुण

  • एक मल्टी-लैंग्वेज कोडबेस का पूरा नक्शा सेकंडों में बनाता है, मुख्य फ़ीचर के लिए किसी AI मॉडल की ज़रूरत नहीं
  • स्ट्रक्चरल ग्राफ़ चलाने में कोई खर्च नहीं, क्योंकि यह पूरी तरह ऑफ़लाइन काम करता है
  • किसी बदलाव का पूरा "ब्लास्ट रेडियस" ट्रेस कर सकता है, यानी वह सब कुछ जो उस कोड पर निर्भर है जिसे आप एडिट करने वाले हैं
  • एक ही प्रोजेक्ट तक सीमित रखा जा सकता है, आपके दूसरे प्रोजेक्ट्स की सेटिंग्स को छुए बिना
  • जनरेट किया गया डेटा वर्शन कंट्रोल से अपने आप बाहर रखता है, ताकि शेयर्ड रिपॉज़िटरी में अव्यवस्था न हो
  • एक ही प्रोजेक्ट में कई प्रोग्रामिंग भाषाओं के साथ एक साथ काम करता है

दोष

  • एक हुक इंस्टॉल करता है जो हर एक मैसेज पर चलता है, जो कोड से असंबंधित बातचीत में शोर जैसा लग सकता है
  • बहुत नया सॉफ़्टवेयर है, अभी तक छोटा ट्रैक रिकॉर्ड
  • गहरी, AI-सारांश वाली परत के लिए अभी भी आपके अपने AI मॉडल एक्सेस की ज़रूरत है और इसे चालू करने पर खर्च आता है
  • सेटअप आपके प्रोजेक्ट में कई कॉन्फ़िगरेशन फ़ाइलों को छूता है, इसलिए स्वीकार करने से पहले क्या लिखा गया है यह देखना उचित है

सावधानी

यह लेख शैक्षणिक उद्देश्य से है और एक विशिष्ट समय पर एक विशिष्ट टूल के साथ एक व्यक्ति के व्यावहारिक अनुभव को दर्शाता है। यहाँ बताए गए कोई भी कमांड, संख्या, या वर्शन विवरण टूल के विकास के साथ बदल सकते हैं, इसलिए इसे स्वयं इंस्टॉल करने से पहले टूल के आधिकारिक डॉक्यूमेंटेशन की जाँच करें। अगर आप इसे किसी शेयर्ड प्रोजेक्ट पर आज़माते हैं, तो पहले हर उस फ़ाइल की समीक्षा करें जो यह बनाने या बदलने का प्रस्ताव करता है, और कभी यह न मानें कि कोई नया डेवलपर टूल जोखिम-मुक्त है सिर्फ़ इसलिए कि किसी और का अनुभव अच्छा रहा।

अक्सर पूछे जाने वाले प्रश्न

  • Graft क्या है? — यह एक ऐसा टूल है जो कोडबेस का एक लोकल, लिंक्ड मैप बनाता है ताकि AI कोडिंग असिस्टेंट्स (और डेवलपर्स) इसे हर बार शुरू से खंगाले बिना जल्दी समझ सकें।
  • क्या इसे काम करने के लिए AI मॉडल चाहिए? — नहीं। इसका मुख्य फ़ीचर, आपके कोड का स्ट्रक्चरल मैप, कोड-पार्सिंग तकनीक का उपयोग करके पूरी तरह ऑफ़लाइन काम करता है। एक वैकल्पिक गहरी परत AI मॉडल का उपयोग करती है, लेकिन वह ज़रूरी नहीं है।
  • क्या इसे मौजूदा प्रोजेक्ट पर इंस्टॉल करना सुरक्षित है? — आप कुछ भी स्वीकार करने से पहले बिल्कुल देख सकते हैं कि यह क्या बनाएगा या बदलेगा, जो किसी भी नए डेवलपर टूल को अपनाने से पहले एक उचित सुरक्षा जाँच है।
  • क्या यह एक ही प्रोजेक्ट में एक से ज़्यादा प्रोग्रामिंग भाषाओं के साथ काम करता है? — हाँ, मेरे टेस्ट में इसने एक ही रन में कई भाषाओं को एक साथ पार्स किया, जिसमें एक कंपाइल्ड मोबाइल ऐप भाषा और कई वेब स्क्रिप्टिंग भाषाएँ शामिल थीं।
  • क्या यह इसी कंप्यूटर पर मेरे दूसरे प्रोजेक्ट्स को प्रभावित करेगा? — तभी जब आप इसे अनुमति दें। सब कुछ एक ही प्रोजेक्ट फ़ोल्डर तक सीमित रखने की सेटिंग है।
  • क्या इसे छोटे, सरल प्रोजेक्ट पर इस्तेमाल करना सार्थक है? — शायद उतना नहीं। फ़ायदा कोडबेस के आकार और जटिलता के साथ बढ़ता है, खासकर बड़ी फ़ाइलें जिनमें काफ़ी इतिहास जमा हो गया हो।
  • क्या जनरेट किए गए मैप को वर्शन कंट्रोल में कमिट करना ज़रूरी है? — नहीं, इसे लोकली रीजनरेट करने के लिए डिज़ाइन किया गया है और आमतौर पर यह अपने आप वर्शन कंट्रोल से बाहर रहता है।
  • सबसे बड़ी कमी क्या है? — एक हुक जो हर मैसेज पर जाँच करता है, जो कोड से असंबंधित बातचीत में अनावश्यक शोर जैसा लग सकता है।

टैग्स

#ai #developertools #codingagents #productivity #softwareengineering #devtools #automation #codereview #techtools #programming

Free field guide

API Security Testing Checklist

A practical workflow for testing authentication, authorization, input handling, business logic, and evidence without losing track of scope.