इस प्रोजेक्ट के बारे में

claude-code-rlm, Claude Code के लिए एक हुक है जो मुख्य मॉडल द्वारा प्रॉम्प्ट को हैंडल करने से पहले कोडबेस पर प्री-रिसर्च करता है। प्राथमिक मॉडल (Opus या Sonnet) को अपने पहले टूल कॉल्स ओरिएंटेशन में खर्च करने देने के बजाय, यह हुक पहले तेज़ और सस्ते Haiku मॉडल को रिपॉजिटरी एक्सप्लोर करने के लिए भेजता है और परिणामों को इंजेक्टेड कॉन्टेक्स्ट के रूप में मुख्य मॉडल को सौंप देता है। यह कैसे काम करता है 1. Claude Code, UserPromptSubmit हुक के माध्यम से rlm-hook.mjs को कॉल करता है, और stdin पर prompt, cwd और transcript_path जैसे फ़ील्ड्स के साथ JSON पास करता है। 2. मामूली इनपुट्स को तुरंत छोड़ दिया जाता है: कॉन्फ़िगर की गई न्यूनतम लंबाई से छोटे प्रॉम्प्ट, सरल शेल कमांड (ls, pwd, cat, echo, git status, npm, yarn), एक शब्द की पुष्टि, /help, /clear और /compact जैसे स्लैश कमांड, और कोड-भारी पेस्ट जहाँ आधे से अधिक इनपुट कोड ब्लॉक होते हैं। 3. प्रॉम्प्ट और वर्किंग डायरेक्टरी के SHA-256 हैश की जाँच एक फ़ाइल कैश के विरुद्ध की जाती है जिसका डिफ़ॉल्ट TTL एक घंटा होता है। 4. कैश मिस होने पर, कॉन्फ़िगर किए गए Haiku मॉडल के साथ Claude CLI को स्पॉन किया जाता है, जिसे Read, Glob, Grep और git Bash तक सीमित किया जाता है, और एक सिस्टम प्रॉम्प्ट दिया जाता है जो इसे टूल कॉल्स की एक कॉन्फ़िगर करने योग्य संख्या के भीतर कोडबेस को एक्सप्लोर करने का निर्देश देता है। 5. Haiku अपने निष्कर्षों को एक स्क्रैच JSON फ़ाइल में लिखता है; हुक उन्हें एक स्ट्रक्चर्ड rlm_preresearch ब्लॉक में फॉर्मेट करता है जिसमें intent, summary, relevant files, existing patterns, recent changes, suggested approach, tasks और warnings शामिल होते हैं, फिर इसे stdout पर प्रिंट करता है ताकि Claude Code इसे यूजर प्रॉम्प्ट से पहले इंजेक्ट कर सके। 6. किसी भी विफलता, जिसमें टाइमआउट, API त्रुटियां और JSON पार्स त्रुटियां शामिल हैं, बिना किसी आउटपुट के समाप्त हो जाती हैं, ताकि हुक बातचीत को ब्लॉक या दूषित न करे। मोड्स और कॉन्फ़िगरेशन सब कुछ एनवायरनमेंट वेरिएबल्स के माध्यम से कॉन्फ़िगर किया जाता है। एजेंटिक मोड (डिफ़ॉल्ट) टूल-आधारित एक्सप्लोरेशन को सक्षम करता है और कैश मिस पर लगभग 20 सेकंड का बताया गया है; फास्ट मोड बिना टूल कॉल्स के लगभग 4 सेकंड में संक्षिप्त विश्लेषण करता है। अन्य सेटिंग्स में मॉडल का नाम, कुल टाइमआउट, कैश TTL, न्यूनतम और अधिकतम इनपुट लंबाई, अधिकतम टूल टर्न्स, कैश और लॉग पाथ, और एक मेट्रिक्स फ़ाइल शामिल हैं। एक वैकल्पिक SDK-Direct मोड सबप्रोसेस के बजाय API की के साथ Anthropic SDK का उपयोग करता है। README में वर्णित अतिरिक्त सुविधाओं में एक वैकल्पिक सिमेंटिक कैश शामिल है जो कॉन्फ़िगर करने योग्य कोसाइन सिमिलरिटी थ्रेशोल्ड के विरुद्ध एम्बेडिंग्स की तुलना करता है, कॉन्टेक्स्ट रियूज जो समान इंटेंट या फाइलों के पुन: विश्लेषण से बचने के लिए हाल के RLM ब्लॉक्स को देखता है, और एक मेट्रिक्स JSONL लॉग जिसमें एक बंडल डैशबोर्ड (पोर्ट 9876 पर स्थानीय रूप से सर्व किया गया) होता है जो लेटेंसी डिस्ट्रीब्यूशन, कैश हिट रेट, प्रति-मोड प्रदर्शन और अनुमानित Haiku लागत दिखाता है। रिपोर्ट किए गए लेटेंसी आंकड़े: स्किप करने पर लगभग 27 ms, कैश हिट पर लगभग 37 ms, मिस होने पर एजेंटिक मोड में लगभग 20 s, और फास्ट मोड में लगभग 4 s। आवश्यकताएं और इंस्टॉलेशन: Node.js 18 या नया और PATH पर Claude Code CLI। प्रदान किया गया इंस्टॉल स्क्रिप्ट हुक को Claude हुक्स डायरेक्टरी में कॉपी करता है और इसे एक्जीक्यूटेबल बनाता है; Claude Code सेटिंग्स फ़ाइल में कमांड और टाइमआउट के साथ एक हुक एंट्री जोड़ी जानी चाहिए। टेस्टिंग और बेंचमार्किंग npm स्क्रिप्ट्स के माध्यम से चलाए जाते हैं, और इंटीग्रेशन टेस्ट के लिए लाइव claude बाइनरी की आवश्यकता होती है। प्रोजेक्ट MIT लाइसेंस के तहत जारी किया गया है।