SSD Nodes Learn 8GB RAM — $66/साल
गाइड Matt Connorलेखक: Matt Connor · अपडेट किया गया: 2026-08-01

Claude Code के लिए Recall का उपयोग कैसे करें

Recall प्लगइन का उपयोग करके Claude Code को VPS पर मेमोरी दें। यह टूल सत्रों को सारांशित करता है जिससे टोकन की बचत होती है। संस्करण 0.4.0 के साथ सेटअप प्रक्रिया और लाभ जानें।

Verified Every command ran end-to-end on a fresh Ubuntu 24.04 server, July 30, 2026.

Claude Code मेमोरी के लिए Recall क्या करता है

Recall एक Claude Code प्लगइन है जो प्रत्येक प्रोजेक्ट को सत्रों (sessions) के बीच एक मेमोरी प्रदान करता है। यह आपके प्रोजेक्ट के अंदर .recall/ फ़ोल्डर में दो मार्कडाउन फ़ाइलें लिखता है: जो हुआ उसका एक केवल-अपेंड (append-only) लॉग, और जहाँ आपने काम छोड़ा था उसका एक संक्षिप्त सारांश। दोनों को उस मशीन पर एक स्थानीय Python समराइज़र द्वारा तैयार किया जाता है जिस पर आप काम कर रहे हैं, इसलिए मेमोरी के लिए शून्य API टोकन खर्च होते हैं।

यह जिस अंतर को भरता है वह छोटा और निरंतर है। आप मंगलवार को अपने VPS पर एक सत्र बंद करते हैं। बुधवार को, Claude Code को मंगलवार के बारे में कुछ भी पता नहीं होता। आप या तो प्रोजेक्ट को हाथ से दोबारा समझाते हैं, या आप मॉडल को इसे समझने के लिए रिपॉजिटरी का आधा हिस्सा फिर से पढ़ने देते हैं। दोनों में टोकन खर्च होते हैं, और दूसरे विकल्प में बहुत अधिक टोकन खर्च होते हैं।

जुलाई 2026 तक Recall संस्करण 0.4.0 वर्तमान है, और प्रोजेक्ट MIT लाइसेंस प्राप्त है। यह एक प्लगइन है। इसमें ऐसा कुछ भी नहीं है जो नेटवर्क कॉल करता हो।

VPS पर आपको क्या चाहिए

Recall के कैप्चर हुक Python स्क्रिप्ट हैं जो प्लगइन के साथ आते हैं। इसमें कोई थर्ड-पार्टी डिपेंडेंसी नहीं है, इसलिए एकमात्र वास्तविक आवश्यकता एक इंटरप्रेटर है।

python3 -V

Ubuntu 24.04 Python 3.12.3 का उत्तर देता है। Recall Python 3.9 और उसके नए वर्ज़न को सपोर्ट करता है। मिनिमल कंटेनर इमेज में कभी-कभी कोई इंटरप्रेटर नहीं होता है, और तब शेल python3: command not found का उत्तर देता है। आगे बढ़ने से पहले एक इंस्टॉल करें।

sudo apt update && sudo apt install -y python3

NumPy समराइज़र के एक चरण के लिए एक वैकल्पिक एक्सीलरेटर है। आपको इसकी आवश्यकता नहीं है।

python3 -c "import numpy"

ModuleNotFoundError: No module named 'numpy' यहाँ एक स्वीकार्य उत्तर है। समराइज़र में एक प्योर-Python पाथ है, और प्रोजेक्ट की टेस्ट सुइट यह जांचती है कि दोनों पाथ एक ही वाक्यों का चयन करते हैं।

सर्वर पर सेशन मेमोरी लैपटॉप की तुलना में अधिक मायने रखती है, क्योंकि सर्वर का काम दिनों में फैले छोटे-छोटे विज़िट्स में आता है। यदि आपके पास पहले से ही VPS पर tmux में Claude Code चल रहा है, तो Recall वह हिस्सा है जो कल के सेशन को आज तक ले जाता है।

प्लगइन मार्केटप्लेस से Recall इंस्टॉल करें

Claude Code सत्र के भीतर दो कमांड टाइप करें:

/plugin marketplace add raiyanyahya/recall
/plugin install recall@recall

दूसरा कमांड plugin@marketplace पढ़ता है। यहाँ दोनों नाम recall हैं, जो कॉपी-पेस्ट की गलती लग सकती है लेकिन ऐसा नहीं है।

प्लगइन के स्वयं के कमांड में से एक चलाकर इंस्टॉलेशन की जाँच करें:

/recall:show

/recall:show वर्तमान सारांश प्रिंट करता है। बिल्कुल नए प्रोजेक्ट पर अभी प्रिंट करने के लिए कुछ भी नहीं है, इसलिए आप वास्तव में यह जाँच रहे हैं कि कमांड मौजूद है या नहीं। यदि Claude Code /recall:show को नहीं पहचानता है, तो प्लगइन लोड नहीं हुआ है और कोई भी हुक सक्रिय नहीं होगा।

इसके बजाय चेकआउट से चलाने के लिए, रिपॉजिटरी को क्लोन करें और पहले इसे वैलिडेट करें:

git clone https://github.com/raiyanyahya/recall ~/recall
cd ~/recall && claude plugin validate .

claude plugin validate ., .claude-plugin/ में मैनिफेस्ट को पढ़ता है और रिपोर्ट करता है कि क्या प्लगइन सही ढंग से बना है। फिर अपने प्रोजेक्ट डायरेक्टरी से claude --plugin-dir ~/recall के साथ Claude Code शुरू करें।

हुक क्या लिखते हैं और कब

Recall तीन Claude Code हुक रजिस्टर करता है। प्रत्येक हुक प्लगइन डायरेक्टरी से एक Python स्क्रिप्ट चलाता है।

  • SessionStart स्टार्टअप, रिज़्यूम और क्लियर होने पर चलता है। यह context.md को सामने लाता है ताकि सेशन आपके सारांश (summary) के साथ खुले।
  • Stop हर बार चलता है जब Claude अपना रिस्पॉन्स पूरा करता है। यह उस टर्न को लॉग में जोड़ देता है।
  • SessionEnd तब चलता है जब सेशन बंद होता है, और यह सारांश को फिर से जनरेट कर सकता है।

इससे दो फाइलें बनती हैं, दोनों .recall/ के अंदर होती हैं।

  • history.md केवल-अपेंड (append-only) रिकॉर्ड है: प्रॉम्प्ट्स, रिस्पॉन्स, छुई गई फाइलें और चलाए गए कमांड्स।
  • context.md जनरेट किया गया डाइजेस्ट है: लक्ष्य, सारांश, अगले चरण, छुई गई फाइलें, चलाए गए कमांड्स और git संदर्भ।

एक वास्तविक सेशन के बाद, डायरेक्टरी को देखें।

ls -la .recall/

आपको history.md दिखाई देना चाहिए जिसमें कंटेंट हो। हो सकता है कि आपको context.md बिल्कुल न दिखे, और यह कोई त्रुटि नहीं बल्कि डिफ़ॉल्ट व्यवहार है। auto_save_context का मान off होता है जब तक कि आप इसे सेट न करें, इसलिए सारांश केवल तभी लिखा जाता है जब आप इसके लिए कहते हैं:

/recall:save

यह कमांड history.md पर लोकल समराइज़र चलाता है और context.md को फिर से लिखता है। एल्गोरिदम TF-IDF (term frequency, inverse document frequency) स्कोरिंग है जो TextRank सेंटेंस रैंकिंग को फीड करता है। यह डिटरमिनिस्टिक और एक्सट्रैक्टिव है, जिसका अर्थ है कि यह उन वाक्यों का चयन करता है जो आपके लॉग में पहले से मौजूद हैं। कोई मॉडल कॉल नहीं किया जाता है, इसलिए यह चरण निःशुल्क है और मशीन के ऑफलाइन होने पर भी काम करता है।

एक प्रोजेक्ट के लिए Recall कॉन्फ़िगर करें

कॉन्फ़िगरेशन प्रोजेक्ट रूट में एक recall.config.json फ़ाइल में रहता है। ये शिप किए गए डिफ़ॉल्ट हैं:

{
  "output_dir": ".recall",
  "capture_history": true,
  "summary_sentences": 8,
  "redact": true,
  "include_git": true,
  "max_input_chars": 200000
}
  • output_dir सेट करता है कि दोनों फ़ाइलें कहाँ रहती हैं। इसे प्रोजेक्ट के अंदर रखें।
  • capture_history history.md लॉग को चालू और बंद करता है।
  • auto_save_context off या on_end स्वीकार करता है, और डिफ़ॉल्ट रूप से off पर सेट होता है।
  • summary_sentences यह निर्धारित करता है कि कितनी वाक्य context.md में सुरक्षित रहते हैं। इसे बढ़ाने से सारांश लंबा हो जाता है और सत्र शुरू होने पर लोड थोड़ा बढ़ जाता है।
  • redact डिस्क पर कुछ भी लिखने से पहले सामान्य गुप्त पैटर्न को हटा देता है।
  • include_git वर्तमान diff और हालिया commits को सारांश में जोड़ता है।
  • max_input_chars यह सीमित करता है कि summarizer एक बार में history.md का कितना हिस्सा पढ़ता है।

VPS पर किसी प्रोजेक्ट के लिए उपयोगी बदलाव स्वचालित सेविंग है, क्योंकि सर्वर पर सत्र अक्सर तब समाप्त हो जाता है जब टर्मिनल बंद हो जाता है, न कि तब जब आप रुकने का निर्णय लेते हैं।

{
  "auto_save_context": "on_end",
  "summary_sentences": 12
}

कॉन्फ़िगरेशन को छुए बिना कुछ समय के लिए कैप्चर रोकने के लिए, पॉज़ मार्कर बनाएँ। कैप्चरिंग फिर से शुरू करने के लिए इसे हटा दें।

touch .recall/.capture-paused

ऐसे सत्र से पहले ऐसा करें जहाँ आप प्रोडक्शन क्रेडेंशियल्स को संभालते हैं, क्योंकि रिडक्शन एक फ़िल्टर है, गारंटी नहीं। यही तर्क सामान्य रूप से AI एजेंटों से गुप्त जानकारी दूर रखने के पीछे है: सुरक्षित गुप्त जानकारी वह है जिसे एजेंट कभी नहीं देखता।

Recall टोकन की कितनी बचत करता है?

यह इस बात पर निर्भर करता है कि विकल्प क्या था। सत्र (session) की शुरुआत में सारांश (summary) लोड करना सस्ता है। यह जिस चीज़ की जगह लेता है वह महंगी हो सकती है, क्योंकि आपके प्रोजेक्ट की मेमोरी के बिना मॉडल फाइलों को पढ़कर उसे फिर से खोजता है।

ChartTypical cost of resuming work, per session
The data behind this chart
[
  {
    "label": "Recall context.md",
    "char_count": "4,800",
    "est_tokens": "1,200"
  },
  {
    "label": "Hand-written CLAUDE.md",
    "char_count": "3,200",
    "est_tokens": "800"
  },
  {
    "label": "Re-reading the repo",
    "char_count": "120,000",
    "est_tokens": "30,000"
  },
  {
    "label": "Full transcript replay",
    "char_count": "340,000",
    "est_tokens": "85,000"
  }
]

ये एक मध्यम आकार के प्रोजेक्ट के सामान्य आंकड़े हैं, न कि आपके प्रोजेक्ट का मापन। एक Recall सारांश लगभग 1,200 टोकन पर लोड होता है, जो रिज्यूमे के लिए एक से दो हजार टोकन के प्रकाशित दावे के अनुरूप है। पिछली पूरी बातचीत को फिर से चलाने (replay) पर पूरी बातचीत लोड हो जाती है, जो लगभग 85,000 टोकन के दायरे में होती है। मॉडल को फाइलों को पढ़कर प्रोजेक्ट को फिर से खोजने देने पर यह संख्या दोनों के बीच, लगभग 30,000 टोकन के करीब होती है, और यह संख्या रिपॉजिटरी के साथ बढ़ती जाती है। CLAUDE.md पंक्ति पैमाने के लिए है: यह सस्ता है क्योंकि यह छोटा और स्थिर है, और यह मॉडल को पिछली रात क्या हुआ था, इसके बजाय आपके स्थायी नियम बताता है।

अपने स्वयं के आंकड़े मापें। एक टोकन अंग्रेजी गद्य के लगभग चार वर्णों के बराबर है, और कोड के लिए थोड़ा कम।

wc -c .recall/context.md .recall/history.md
echo $(( $(wc -c < .recall/context.md) / 4 ))

एक सत्र के भीतर, /context दिखाता है कि अभी कॉन्टेक्स्ट विंडो में क्या लोड है, और /cost सत्र के कुल योग की रिपोर्ट करता है। एक सत्र को बिना किसी डेटा के शुरू करें, अगले सत्र को सारांश के साथ शुरू करें, और तुलना करें। सत्र के टोकन वास्तव में कहाँ खर्च होते हैं, इसकी पूरी जानकारी के लिए, Claude Code टोकन कैसे खर्च करता है में विवरण देखें।

एक चेतावनी इस दावे को निष्पक्ष रखती है। सारांश हर सत्र की शुरुआत में लोड किया जाता है, इसलिए जिस सारांश पर आप कभी काम नहीं करते, वह बचत के बजाय एक छोटा सा अतिरिक्त खर्च है। summary_sentences को डिफ़ॉल्ट के करीब रखें, जब तक कि आपके सत्र बहुत लंबे न चलते हों।

सत्र के बिना सारांश को पुनः निर्मित करना

यदि आपने रिपॉजिटरी को क्लोन किया है, तो समराइज़र का अपना कमांड लाइन एंट्री पॉइंट होता है। यह VPS पर तब उपयोगी होता है जब टर्मिनल के साथ सत्र समाप्त हो गया हो और आप फिर भी डाइजेस्ट प्राप्त करना चाहते हैं।

python3 ~/recall/scripts/make_context.py --help

हेल्प आउटपुट उन फ्लैग्स की सूची देता है जिन्हें यह स्वीकार करता है: प्रोजेक्ट रूट के लिए --cwd, स्पष्ट ट्रांसक्रिप्ट फ़ाइल के लिए --transcript, आउटपुट को दबाने के लिए --quiet, और claude तथा opencode के बीच चयन करने के लिए --harness। इसे किसी प्रोजेक्ट पर निर्देशित करें:

python3 ~/recall/scripts/make_context.py --cwd /srv/projects/api

यह सत्र ट्रांसक्रिप्ट और history.md को पढ़ता है, फिर आपके द्वारा पास की गई डायरेक्टरी के अंतर्गत context.md लिखता है। यदि आपने मार्केटप्लेस के माध्यम से इंस्टॉल किया है, तो प्लगइन उस डायरेक्टरी में रहता है जिसे Claude Code प्रबंधित करता है, और वही कार्य करने के लिए /recall:save समर्थित तरीका है।

कुछ भी क्यों नहीं लिखा जा रहा है

पूर्ण सत्र के बाद कोई .recall/ निर्देशिका नहीं है। हुक कभी नहीं चले। प्लगइन लोड है या नहीं यह पुष्टि करने के लिए /recall:show टाइप करें, फिर python3 -V चलाएं। हुक कमांड पहले python3 और फिर python का प्रयास करता है, इसलिए जिस बॉक्स में इनमें से कोई भी नहीं होता, वह कुछ नहीं लिखता और इसके बारे में कोई सूचना भी नहीं देता।

history.md बढ़ता है लेकिन context.md कभी नहीं बदलता। auto_save_context डिफ़ॉल्ट रूप से off होता है। /recall:save चलाएं, या कुंजी को on_end पर सेट करें और SessionEnd हुक को इसे करने दें।

फ़ाइलें गलत प्रोजेक्ट के अंतर्गत दिखाई देती हैं। Recall उस निर्देशिका के सापेक्ष लिखता है जहाँ से Claude Code शुरू किया गया था, इसलिए अपनी होम निर्देशिका से सत्र शुरू करने पर मेमोरी वहीं चली जाती है। प्रोजेक्ट रूट से शुरू करें, और फ़ाइलें वास्तव में कहाँ गईं यह पता लगाने के लिए ls -la .recall/ का उपयोग करें।

कैप्चर रुक गया और आपको कोई चेतावनी नहीं मिली। ls -a .recall/ के साथ पॉज़ मार्कर की जाँच करें। आपके द्वारा पिछले सप्ताह बनाई गई .capture-paused फ़ाइल अभी भी अपना काम कर रही है।

लंबे सत्र के बाद सारांश बहुत संक्षिप्त है। max_input_chars समराइज़र इनपुट को 200000 वर्णों पर सीमित करता है, इसलिए बहुत लंबा लॉग कट जाता है। इसे रोटेट करें।

mv .recall/history.md .recall/history-2026-07-30.md

इसके बाद एक छोटा सत्र चलाएं और पुष्टि करने के लिए कि एक नया history.md दिखाई दिया है, फिर से ls -la .recall/ की जाँच करें।

Recall कहाँ रुकता है

Recall एक लॉग और एक समराइज़र है, और यह स्पष्ट होना आवश्यक है कि यह क्या छोड़ देता है।

समराइज़र एक्सट्रैक्टिव (extractive) है। TextRank उन वाक्यों को चुनता है जो पहले से ही history.md में मौजूद हैं, इसलिए यह कभी यह नहीं परखता कि कोई निर्णय सही था या नहीं। मंगलवार को रिकॉर्ड की गई गलत दिशा बुधवार को एक अच्छे निर्णय जैसी ही लगती है। जब दांव पर कुछ महत्वपूर्ण हो, तो context.md को पढ़ें और इसे हाथ से ठीक करें। यह एक markdown फ़ाइल है और इसे संपादित करने से आपको कोई नहीं रोकता।

इसमें कोई सर्च नहीं है। आपको प्रति प्रोजेक्ट एक वर्तमान सारांश और एक बढ़ता हुआ लॉग मिलता है, न कि प्रोजेक्ट्स के बीच क्वेरी करने योग्य मेमोरी। यदि प्रश्न यह है कि आपने तीन सप्ताह पहले डेटाबेस के बारे में क्या निर्णय लिया था, तो आप history.md को grep कर रहे होंगे।

यह एक सेशन के भीतर मदद नहीं करता है। सेशन के बीच में भरती हुई कॉन्टेक्स्ट विंडो एक अलग समस्या है जिसके अलग समाधान हैं, और एक सेशन के भीतर कॉन्टेक्स्ट विंडो को मैनेज करना इस गाइड का पूरक हिस्सा है।

सारांश को डिज़ाइन के अनुसार अनट्रस्टेड इनपुट माना जाता है। context.md को फेन्स और लेबल के साथ इंजेक्ट किया जाता है, और Claude उस पर भरोसा करने से पहले पूछता है। यह डिज़ाइन इसलिए मौजूद है क्योंकि एक कमिट किया गया .recall/ डायरेक्टरी ऐसी जगह है जहाँ कमिट एक्सेस वाला कोई भी व्यक्ति ऐसा टेक्स्ट लिख सकता है जिसे आपका एजेंट पढ़ेगा। एक बार तय करें कि .recall/ व्यक्तिगत है या साझा: इसे व्यक्तिगत मेमोरी के लिए .gitignore में जोड़ें, या इसे कमिट करें और किसी अन्य योगदान की तरह इसकी समीक्षा करें। यदि एजेंट बिना निगरानी के चलता है, तो VPS पर सुरक्षित रूप से Claude Code चलाना व्यापक सुरक्षा सीमाओं को कवर करता है।

रिडैक्शन (redaction) सर्वोत्तम प्रयास है। यह API कीज़, टोकन, PEM ब्लॉक्स और .env असाइनमेंट जैसे सामान्य पैटर्न को लक्षित करता है। इसे कमिट करने से पहले .recall/ को पढ़ें।

वर्जन नंबर परिपक्वता के बारे में ईमानदार है। जुलाई 2026 में 0.4.0 पर, कॉन्फ़िग कीज़ और फ़ाइल लेआउट अभी भी रिलीज़ के बीच बदल सकते हैं, इसलिए जिस सेटअप पर आप निर्भर हैं उसे अपग्रेड करने से पहले चेंजलॉग पढ़ें।

FAQ

क्या Recall मेरा कोड या ट्रांसक्रिप्ट कहीं भेजता है?

नहीं। कैप्चर हुक्स और समराइज़र Python स्क्रिप्ट हैं जो आपकी अपनी मशीन पर चलती हैं, प्लगइन के पास कोई API key नहीं होती है, और यह कोई network call नहीं करता है। समरी बनाने के लिए किसी मॉडल के बजाय TF-IDF और TextRank का उपयोग किया जाता है, इसलिए इस चरण में कोई लागत नहीं आती है और यह मशीन के offline होने पर भी काम करता है। इसका परिणाम यह है कि समरी एक्सट्रैक्टिव (extractive) होती है: यह नए वाक्य लिखने के बजाय आपके लॉग से ही वाक्य चुनती है।

मेरा .recall/context.md गायब या पुराना क्यों है?

auto_save_context का डिफ़ॉल्ट मान off है, इसलिए समरी केवल तब फिर से जनरेट होती है जब आप /recall:save चलाते हैं। यदि आप चाहते हैं कि प्रत्येक सेशन समाप्त होने पर इसे फिर से लिखा जाए, तो recall.config.json में "auto_save_context": "on_end" सेट करें। यदि history.md भी गायब है, तो हुक्स बिल्कुल नहीं चल रहे हैं: पुष्टि करें कि प्लगइन /recall:show के साथ लोड हो गया है, फिर पुष्टि करें कि उस बॉक्स पर python3 -V का उत्तर मिलता है, क्योंकि हुक्स Python स्क्रिप्ट हैं।

Recall प्रति सेशन कितनी बचत करता है?

एक समरी लोड करने की लागत लगभग 1,200 टोकन होती है, जबकि उस मॉडल के लिए यह 30,000 टोकन होती है जिसे यह पता लगाने के लिए कि वह कहाँ है, आपके रिपॉजिटरी को फिर से पढ़ना पड़ता है। ये सामान्य आंकड़े हैं। wc -c .recall/context.md और सेशन के अंदर /context कमांड का उपयोग करके स्वयं मापें, और कोल्ड स्टार्ट की तुलना उस स्टार्ट से करें जो समरी से रिज़्यूम होता है।

क्या मुझे अभी भी CLAUDE.md फ़ाइल की आवश्यकता है?

हाँ, और दोनों अलग-अलग काम करते हैं। CLAUDE.md वह है जिसे आप जानबूझकर लिखते हैं: स्थायी नियम और बिल्ड कमांड। context.md उस आधार पर जनरेट होता है जो पिछले सेशन में वास्तव में हुआ था, इसलिए इसमें वह अधूरा माइग्रेशन होता है जिसे आप कभी लिखने के बारे में नहीं सोचेंगे। दोनों को रखें।

क्या एक VPS कई प्रोजेक्ट्स के लिए मेमोरी रख सकता है?

हाँ। Recall प्रत्येक प्रोजेक्ट डायरेक्टरी के अंदर .recall/ में मेमोरी रखता है, इसलिए एक ही सर्वर पर दो प्रोजेक्ट अलग-अलग लॉग और अलग-अलग समरी रखते हैं। हर बार प्रोजेक्ट रूट से Claude Code शुरू करें, क्योंकि फ़ाइलें वर्किंग डायरेक्टरी का अनुसरण करती हैं, न कि यूज़र अकाउंट का।