SSD Nodes Learn Hosting plans →
गाइड Matt Connorलेखक: Matt Connor · अपडेट किया गया: 2026-08-23

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

Claude Code में Recall प्लगइन सेटअप करें और सत्रों के बीच अपनी प्रगति को सुरक्षित रखें। यह टूल प्रोजेक्ट के सारांश को .recall फोल्डर में सेव करता है जिससे टोकन की बचत होती है।

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

Claude Code memory के लिए Recall क्या करता है

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

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

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

VPS पर आपको किन चीजों की आवश्यकता है

Recall के capture hooks वे Python scripts हैं जो plugin के साथ आती हैं। इसमें कोई third-party dependency नहीं है, इसलिए एकमात्र वास्तविक आवश्यकता एक interpreter है।

python3 -V

Ubuntu 24.04, Python 3.12.3 का उत्तर देता है। Recall, Python 3.9 और उसके बाद के संस्करणों को सपोर्ट करता है। Minimal container images में कभी-कभी कोई interpreter नहीं होता, और ऐसी स्थिति में shell, python3: command not found का उत्तर देता है। आगे बढ़ने से पहले एक interpreter install करें।

sudo apt update && sudo apt install -y python3

NumPy, summarizer के एक चरण के लिए एक वैकल्पिक accelerator है। आपको इसकी आवश्यकता नहीं है।

python3 -c "import numpy"

ModuleNotFoundError: No module named 'numpy' यहाँ एक स्वीकार्य उत्तर है। Summarizer में एक pure-Python path मौजूद है, और project की test suite यह सुनिश्चित करती है कि दोनों paths एक ही sentences का चयन करें।

Server पर session memory, laptop की तुलना में अधिक मायने रखती है, क्योंकि server का काम कई दिनों तक फैले छोटे-छोटे visits में आता है। यदि आपके पास पहले से ही VPS पर tmux में Claude Code चल रहा है, तो Recall वह घटक है जो कल के session को आज तक लेकर आता है।

Plugin marketplace से Recall इंस्टॉल करें

Claude Code session के भीतर टाइप की गई दो commands:

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

दूसरी command plugin@marketplace पढ़ती है। यहाँ दोनों नाम recall हैं, जो copy-paste की गलती लग सकती है, लेकिन यह गलती नहीं है।

plugin की अपनी एक command चलाकर इंस्टॉलेशन की जाँच करें:

/recall:show

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

इसके बजाय checkout से चलाने के लिए, repository को clone करें और पहले उसे validate करें:

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

claude plugin validate ., .claude-plugin/ में मौजूद manifest को पढ़ता है और रिपोर्ट करता है कि क्या 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

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

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

यह इस बात पर निर्भर करता है कि विकल्प क्या था। सत्र (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 summary लगभग 1,200 tokens पर लोड होती है, जो resume के लिए प्रोजेक्ट के एक से दो हजार tokens के दावे के अनुरूप है। पिछले पूरे transcript को फिर से चलाने पर पूरी बातचीत दोबारा लोड होती है, जो लगभग 85,000 tokens के दायरे में होती है। मॉडल को फाइलों को पढ़कर प्रोजेक्ट को फिर से खोजने देने पर यह संख्या दोनों के बीच, लगभग 30,000 tokens के आसपास होती है, और यह संख्या repository के साथ बढ़ती जाती है। CLAUDE.md पंक्ति पैमाने (scale) के लिए है: यह सस्ता है क्योंकि यह छोटा और स्थिर है, और यह मॉडल को पिछली रात क्या हुआ था, यह बताने के बजाय आपके स्थायी नियम बताता है।

अपने स्वयं के आंकड़ों को मापें। एक token अंग्रेजी गद्य के लगभग चार अक्षरों के बराबर होता है, और कोड के लिए थोड़ा कम। यदि आप summary को उसी VPS पर किसी local model में भी डालते हैं, तो resume पर भरोसा करने से पहले उस window की जाँच करें जिसमें वह लोड हो रहा है, क्योंकि Ollama छोटे डिफ़ॉल्ट context length पर लंबे prompts को काट देता है और आपको यह नहीं बताता कि उसने अंत का हिस्सा हटा दिया है।

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

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

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

बिना session के summary को फिर से बनाना

यदि आपने repository को clone किया है, तो summarizer का अपना command line entry point होता है। यह VPS पर तब उपयोगी होता है जब terminal के साथ session समाप्त हो गया हो और आप फिर भी digest प्राप्त करना चाहते हैं।

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

Help output उन flags की सूची दिखाता है जिन्हें यह स्वीकार करता है: project root के लिए --cwd, स्पष्ट transcript file के लिए --transcript, output को दबाने के लिए --quiet, और claude तथा opencode के बीच चयन करने के लिए --harness। इसे एक project पर point करें:

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

यह session transcript और history.md को पढ़ता है, और फिर आपके द्वारा pass की गई directory के अंतर्गत context.md लिखता है। यदि आपने marketplace के माध्यम से install किया है, तो plugin उस directory में रहता है जिसे Claude Code manage करता है, और वही काम करने का समर्थित तरीका /recall:save है।

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

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

history.md बढ़ता है लेकिन context.md कभी नहीं बदलता। auto_save_context डिफ़ॉल्ट रूप से off है। /recall:save चलाएं, या की (key) को 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 एक लॉग और एक समराइज़र (summarizer) है, और यह स्पष्ट होना आवश्यक है कि यह क्या छोड़ देता है।

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

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

यह session के अंदर मदद नहीं करता है। session के बीच में context window का भर जाना एक अलग समस्या है जिसके अलग समाधान हैं, और एक session के भीतर context window को मैनेज करना इस गाइड का पूरक हिस्सा है।

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

Redaction सर्वोत्तम प्रयास है। यह API keys, tokens, PEM blocks और .env असाइनमेंट जैसे सामान्य पैटर्न को लक्षित करता है। इसे कमिट करने से पहले .recall/ को पढ़ें।

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

FAQ

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

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

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

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

Recall प्रति सत्र (session) कितनी बचत करता है?

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

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

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

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

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