सामग्री पर जाएँ

Goose यूज़र्स के लिए

Goose एक्सटेंशन्स पर चलता है। एक ऐसा जोड़ें जो आपका रिपो जानता हो।

Goose अपना काम एक्सटेंशन्स से करता है, और हर एक्सटेंशन एक MCP सर्वर है। Maguyva वह एक्सटेंशन है जो आपका कोडबेस इंडेक्स करता है, ताकि Goose डायरेक्टरी लिस्ट करने के बजाय पूछे कि चीज़ें कहां हैं।

Free स्तर: 3 रिपॉज़िटरी, 50K तक इंडेक्स्ड रिपॉज़िटरी लाइनें, क्रेडिट कार्ड की ज़रूरत नहीं।

काम कैसे करना है, इसके लिए .goosehints। कोड अभी क्या कहता है, इसके लिए Maguyva।

Goose के बारे में क्या जानना ज़रूरी है

Goose से जुड़े चार तथ्य।

// कॉन्फ़िग फ़ाइल

config.yaml

एक्सटेंशन ~/.config/goose/config.yaml में extensions के नीचे रहते हैं। goose configure → Add Extension आपके लिए उसी तरह की एंट्री लिख देता है।

// ट्रांसपोर्ट

एक रिमोट एक्सटेंशन

Maguyva एक streamable_http एक्सटेंशन है, इसलिए Goose खुद एंडपॉइंट से कनेक्ट होता है: कोई लोकल प्रोसेस नहीं, कोई Node.js नहीं। URL uri में जाता है, url में नहीं।

// कुंजी

headers

Goose हर रिक्वेस्ट के साथ headers मैप भेजता है, इसलिए कुंजी Authorization हेडर में जाती है। Goose इसे env_keys में लिखे किसी एनवायरनमेंट वेरिएबल से भी भर सकता है।

// टूल फ़िल्टर

available_tools

एक्सटेंशन अपने टूल्स का सिर्फ़ एक हिस्सा दिखा सकता है: जो चाहिए उन्हें available_tools के नीचे लिखें, या सभी के लिए खाली छोड़ दें।

Goose हिंट्स एक वर्किंग एग्रीमेंट हैं। इन्हें इस्तेमाल करें।

# .goosehints
- npm नहीं, pnpm इस्तेमाल करें।
- किसी बदलाव को पूरा मानने से पहले इंटीग्रेशन टेस्ट चलाएं।

डिफ़ॉल्ट रूप से Goose AGENTS.md और .goosehints लोड करता है: ग्लोबल हिंट्स ~/.config/goose/.goosehints से, प्रोजेक्ट हिंट्स रिपो से, और सबफ़ोल्डरों में काम करते समय नेस्टेड फ़ाइलें। हिंट्स के लिए Developer एक्सटेंशन चाहिए। ये इनके लिए सही जगह हैं:

  • टूलिंग के विकल्प और कमांड।
  • वे कन्वेंशन जिनका Goose को पालन करना चाहिए।
  • डॉक्यूमेंटेशन कहां है।

हिंट्स प्रोजेक्ट का वर्णन करते हैं। वे “इस पर क्या निर्भर है?” का जवाब नहीं देते।

जहां हिंट्स और शेल कम पड़ते हैं

तीन कमियां जिन्हें Goose शेल कमांड से, एक-एक फ़ाइल करके भरता है।

// लिस्टिंग नक़्शा नहीं है

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

// grep स्ट्रिंग ढूंढता है, कॉलर नहीं

टेक्स्ट सर्च असली कॉल को किसी कमेंट, mock या उसी नाम वाले मेथड से अलग नहीं कर सकता।

// हिंट्स पीछे छूट जाते हैं

पिछली तिमाही में लिखी गई हिंट्स फ़ाइल पिछली तिमाही का स्ट्रक्चर बताती है। Goose फिर भी उसका पालन करता है।

Goose एक्सटेंशन के रूप में Maguyva

एक extensions एंट्री Goose को देती है:

  • आपके इंडेक्स किए गए रिपो पर 11 टूल सिमेंटिक, स्ट्रक्चरल (AST), ग्राफ़ और टेक्स्ट सर्च, साथ में सिंबल लुकअप, डिपेंडेंट्स और फ़ाइल रिट्रीवल।
  • फ़ाइल पाथ और लाइन नंबर के साथ जवाब 285+ भाषाओं में।
  • सिर्फ़ पढ़ने वाले टूल Maguyva के टूल इंडेक्स से क्वेरी करते हैं। इनमें से कोई भी आपकी फ़ाइलें एडिट नहीं करता।

हिंट्स, Goose को बताते हैं कैसे काम करना है।

Maguyva, Goose को कोड का नक़्शा देता है।

दो वर्कफ़्लो

पहले नक़्शा, फिर Goose को चलने दें।

// workflow 01

किसी बग को उसके स्रोत तक ट्रेस करें

goose> कुछ एक्सपोर्ट शून्य पंक्तियों के साथ क्यों खत्म होते हैं?

semantic_search("export job empty result")
  src/export/runner.ts:118   flushBatch()
  src/export/filters.ts:40   applyTenantFilter()

→ Goose पूरा export पैकेज नहीं, दो फ़ाइलें पढ़ता है।
[exit 0]

Goose के शेल खोलने से पहले ही रैंक किए गए नतीजे खोज को सीमित कर देते हैं।

// workflow 02

रीफ़ैक्टर से पहले डिपेंडेंट्स जांचें

goose> Notifier क्लास को ईमेल और SMS में बांटो

dependency_search("Notifier", dependents)
  5 पैकेजों में 11 रेफ़रेंस

→ पहली एडिट से पहले योजना सभी ग्यारह को कवर करती है।
[exit 0]

Goose को grep की लंबी श्रृंखला के बजाय एक ही कॉल में डिपेंडेंट्स की पूरी सूची मिलती है।

Goose में सेटअप

तीन चरण। Free स्तर: 3 रिपॉज़िटरी, 50K तक इंडेक्स्ड रिपॉज़िटरी लाइनें, क्रेडिट कार्ड की ज़रूरत नहीं।

  1. // step 01

    maguyva.ai पर एक रिपो इंडेक्स करें

    ऐसा रिपो चुनें जिसे आप पहले से जानते हैं, ताकि आप जवाबों को परख सकें।

  2. // step 02

    config.yaml में extensions के नीचे Maguyva जोड़ें

    ~/.config/goose/config.yaml

    extensions:
      maguyva:
        name: maguyva
        type: streamable_http
        uri: https://maguyva.tools/mcp
        enabled: true
        headers:
          Authorization: Bearer mgv_xxxx
        timeout: 300
    
  3. // step 03

    प्लेसहोल्डर बदलें और एक सेशन शुरू करें

    mgv_xxxx को अपनी API कुंजी से बदलें, goose session चलाएं, और एक ऐसा सवाल पूछें जिसका जवाब आप पहले से जानते हैं। YAML इंडेंटेशन के प्रति संवेदनशील है: टैब नहीं, स्पेस इस्तेमाल करें।