Claude Code साठी Recall मेमरी प्लगइन कसे सेट करावे
Claude Code सत्रांचा इतिहास जतन करण्यासाठी Recall प्लगइनचा वापर करा. हे स्थानिकरीत्या लॉग तयार करून टोकन खर्च वाचवते. VPS वर सेटअप करण्याच्या अचूक पद्धती आणि फायदे जाणून घ्या.
Claude Code मेमरीसाठी Recall काय करते
Recall हे एक Claude Code प्लगइन आहे जे प्रत्येक प्रोजेक्टला सत्रांदरम्यान (sessions) मेमरी प्रदान करते. हे तुमच्या प्रोजेक्टमधील .recall/ फोल्डरमध्ये दोन markdown फाइल्स तयार करते: काय घडले याचा केवळ-अपेंड (append-only) लॉग आणि तुम्ही काम कोठे थांबवले याचा एक संक्षिप्त सारांश. या दोन्ही फाइल्स तुम्ही ज्या मशीनवर काम करत आहात त्यावर स्थानिक Python समरायझरद्वारे तयार केल्या जातात, त्यामुळे मेमरीसाठी कोणतेही API टोकन्स खर्च होत नाहीत.
हे भरून काढत असलेली पोकळी लहान आणि स्थिर आहे. तुम्ही मंगळवारी तुमच्या VPS वरील सत्र बंद करता. बुधवारी, Claude Code ला मंगळवारच्या सत्राबद्दल काहीही माहिती नसते. तुम्ही प्रोजेक्टबद्दल पुन्हा हाताने स्पष्टीकरण देता किंवा मॉडेलला पुन्हा अर्धे रिपॉझिटरी वाचायला लावता. दोन्ही पद्धतींमध्ये टोकन्स खर्च होतात आणि दुसरी पद्धत खूप जास्त टोकन्स खर्च करते.
जुलै 2026 पर्यंत Recall आवृत्ती 0.4.0 ही सध्याची आवृत्ती आहे आणि हा प्रोजेक्ट MIT परवान्याअंतर्गत उपलब्ध आहे. हे एक प्लगइन आहे. यामध्ये कोणतीही नेटवर्क कॉल केली जात नाही.
VPS वर तुम्हाला काय आवश्यक आहे
Recall चे कॅप्चर हुक्स हे Python स्क्रिप्ट्स आहेत जे प्लगइनसोबत येतात. यात कोणतीही थर्ड-पार्टी अवलंबित्वे (dependencies) नाहीत, त्यामुळे एकमेव खरी गरज म्हणजे एक इंटरप्रिटर.
python3 -VUbuntu 24.04 हे Python 3.12.3 ला उत्तर देते. Recall हे Python 3.9 आणि त्यापुढील आवृत्त्यांना सपोर्ट करते. काही वेळा किमान कंटेनर इमेजेसमध्ये इंटरप्रिटर नसतो, अशा वेळी शेल python3: command not found असे उत्तर देते. पुढे जाण्यापूर्वी एक इंटरप्रिटर इन्स्टॉल करा.
sudo apt update && sudo apt install -y python3NumPy हे समरायझरच्या एका पायरीसाठी एक ऐच्छिक (optional) ॲक्सिलरेटर आहे. तुम्हाला याची गरज नाही.
python3 -c "import numpy"ModuleNotFoundError: No module named 'numpy' हे येथे एक स्वीकारार्ह उत्तर आहे. समरायझरकडे एक शुद्ध-Python मार्ग (pure-Python path) उपलब्ध आहे आणि प्रकल्पाची टेस्ट सूट हे तपासते की दोन्ही मार्ग समान वाक्ये निवडतात.
लॅपटॉपच्या तुलनेत सर्व्हरवर सेशन मेमरी अधिक महत्त्वाची असते, कारण सर्व्हरचे काम हे काही दिवसांत पसरलेल्या छोट्या भेटींच्या स्वरूपात येते. जर तुमच्याकडे आधीच 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 ओळखले नाही, तर प्लगीन लोड झालेले नाही आणि कोणताही हुक (hook) कार्यान्वित होणार नाही.
त्याऐवजी चेकआउटवरून चालवण्यासाठी, रिपॉझिटरी क्लोन करा आणि आधी ती तपासा:
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समोर आणते, जेणेकरून सेशन तुमच्या सारांशासह उघडेल.Stopप्रत्येक वेळी Claude ने प्रतिसाद पूर्ण केल्यावर कार्यान्वित होते. हे त्या टर्नला लॉगमध्ये जोडते.SessionEndसेशन बंद झाल्यावर कार्यान्वित होते आणि सारांश पुन्हा तयार करू शकते.
या प्रक्रियेतून दोन फाइल्स तयार होतात, ज्या दोन्ही .recall/ मध्ये असतात.
history.mdहा फक्त-जोडण्यायोग्य (append-only) रेकॉर्ड आहे: प्रॉम्प्ट्स, प्रतिसाद, स्पर्श केलेल्या फाइल्स आणि चालवलेल्या कमांड्स.context.mdहा तयार केलेला सारांश (digest) आहे: ध्येय, सारांश, पुढील पायऱ्या, स्पर्श केलेल्या फाइल्स, चालवलेल्या कमांड्स आणि 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 वाक्य रँकिंगला फीड करते. हे निश्चित (deterministic) आणि एक्स्ट्रॅक्टिव्ह आहे, याचा अर्थ असा की ते तुमच्या लॉगमध्ये आधीपासून अस्तित्वात असलेली वाक्ये निवडते. यात कोणत्याही मॉडेलला कॉल केला जात नाही, त्यामुळे ही पायरी विनामूल्य आहे आणि मशीन ऑफलाइन असतानाही काम करते.
एका प्रोजेक्टसाठी 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 वरील प्रोजेक्टसाठी स्वयंचलित सेव्हिंग (automatic saving) करणे उपयुक्त ठरते, कारण सर्व्हरवरील सेशन अनेकदा तुम्ही थांबवण्याऐवजी टर्मिनल बंद झाल्यामुळे संपते.
{
"auto_save_context": "on_end",
"summary_sentences": 12
}कॉन्फिगरेशनला हात न लावता काही काळासाठी कॅप्चर थांबवण्यासाठी, पॉज मार्कर तयार करा. पुन्हा कॅप्चर सुरू करण्यासाठी तो डिलीट करा.
touch .recall/.capture-pausedजेव्हा तुम्ही प्रोडक्शन क्रेडेंशियल्स हाताळणार असाल, तेव्हा सेशन सुरू करण्यापूर्वी हे करा, कारण रिडॅक्शन (redaction) ही एक फिल्टर प्रक्रिया आहे, खात्रीशीर सुरक्षा नाही. याच कारणामुळे सामान्यतः AI एजंट्सपासून सीक्रेट्स दूर ठेवणे महत्त्वाचे आहे: जे सीक्रेट एजंटला कधीच दिसत नाही, तेच सर्वात सुरक्षित असते.
Recall किती टोकन्सची बचत करते?
हे पर्यायी साधन काय होते यावर अवलंबून असते. सत्राच्या सुरुवातीला सारांश लोड करणे स्वस्त असते. हे ज्या गोष्टीची जागा घेते ती महाग असू शकते, कारण तुमच्या प्रकल्पाची माहिती नसलेले मॉडेल फाइल्स वाचून ती पुन्हा शोधून काढते.
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 टोकन्सवर लोड होतो, जे प्रकल्पाच्या एक ते दोन हजार टोकन्सच्या दाव्याशी जुळते. मागील संपूर्ण ट्रान्सक्रिप्ट पुन्हा लोड केल्यास संपूर्ण संभाषण पुन्हा लोड होते, जे साधारणपणे 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 डीफॉल्ट सेटिंगच्या जवळ ठेवा.
सत्राशिवाय सारांश पुन्हा तयार करणे
जर तुम्ही रिपॉझिटरी क्लोन केली असेल, तर समरायझरसाठी स्वतंत्र कमांड लाईन एन्ट्री पॉईंट उपलब्ध आहे. जेव्हा टर्मिनलसह सत्र (session) बंद होते आणि तुम्हाला तरीही डायजेस्ट हवा असतो, तेव्हा 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/ डिरेक्टरी दिसत नाही. हुक्स (hooks) कधीही कार्यान्वित झाले नाहीत. प्लगइन लोड झाले आहे का हे तपासण्यासाठी /recall:show टाईप करा, त्यानंतर python3 -V चालवा. हुक कमांड प्रथम python3 आणि त्यानंतर python वापरण्याचा प्रयत्न करते, त्यामुळे ज्या बॉक्समध्ये यापैकी काहीही नाही, तिथे काहीही लिहिले जात नाही आणि त्याबद्दल कोणतीही सूचनाही मिळत नाही.
history.md वाढत आहे पण context.md मध्ये कोणताही बदल होत नाही. auto_save_context हे डीफॉल्टनुसार off असते. /recall:save चालवा, किंवा की (key) on_end वर सेट करा आणि SessionEnd हुकला ते काम करू द्या.
फाईल्स चुकीच्या प्रोजेक्ट अंतर्गत दिसत आहेत. ज्या डिरेक्टरीमधून Claude Code सुरू केले होते, त्या डिरेक्टरीच्या सापेक्ष Recall माहिती लिहिते. त्यामुळे तुमच्या होम डिरेक्टरीमधून सत्र सुरू केल्यास मेमरी तिथेच साठवली जाते. प्रोजेक्ट रूटमधून सुरुवात करा आणि फाईल्स नेमक्या कुठे साठवल्या गेल्या आहेत हे शोधण्यासाठी 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/ तपासा.
Where Recall stops
Recall is a log plus a summarizer, and it is worth being clear about what that leaves out.
The summarizer is extractive. TextRank picks sentences that are already in history.md, so it never judges whether a decision was correct. A wrong turn recorded on Tuesday reads exactly like a good decision on Wednesday. When the stakes are real, read context.md and correct it by hand. It is a markdown file and nothing stops you editing it.
There is no search. You get one current summary and one growing log per project, not a queryable memory across projects. If the question is what you decided about the database three weeks ago, you are grepping history.md.
It does not help inside a session. A context window filling up mid-session is a different problem with different fixes, and managing the context window inside one session is the companion piece to this guide.
The summary is treated as untrusted input by design. context.md is injected fenced and labelled, and Claude asks before relying on it. That design exists because a committed .recall/ directory is a place where anyone with commit access can write text your agent will read. Decide once whether .recall/ is personal or shared: add it to .gitignore for personal memory, or commit it and review it like any other contribution. If the agent runs unattended, running Claude Code safely on a VPS covers the wider boundary.
Redaction is best effort. It targets common patterns such as API keys, tokens, PEM blocks and .env assignments. Read .recall/ before you commit it.
The version number is honest about maturity. At 0.4.0 in July 2026 the config keys and the file layout can still move between releases, so read the changelog before you upgrade a setup you depend on.
FAQ
Recall माझा कोड किंवा ट्रान्सक्रिप्ट्स कुठेही पाठवते का?
नाही. कॅप्चर हुक्स आणि समरायझर हे पायथन स्क्रिप्ट्स आहेत जे तुमच्या स्वतःच्या मशीनवर चालतात. प्लगइनकडे कोणतीही API key नसते आणि ते कोणतेही नेटवर्क कॉल करत नाही. सारांश तयार करण्यासाठी मॉडेलऐवजी TF-IDF आणि TextRank चा वापर केला जातो, त्यामुळे या प्रक्रियेचा कोणताही खर्च येत नाही आणि मशीन ऑफलाइन असतानाही ती काम करते. याचा परिणाम असा की सारांश हा एक्स्ट्रॅक्टिव्ह (extractive) असतो: तो नवीन वाक्ये लिहिण्याऐवजी तुमच्या लॉगधूनच वाक्ये निवडतो.
माझा .recall/context.md गहाळ किंवा जुना का आहे?
auto_save_context डीफॉल्टनुसार off वर सेट असते, त्यामुळे तुम्ही /recall:save चालवता तेव्हाच सारांश पुन्हा तयार केला जातो. प्रत्येक सत्र संपल्यावर सारांश पुन्हा लिहिला जावा यासाठी recall.config.json मध्ये "auto_save_context": "on_end" सेट करा. जर history.md सुद्धा गहाळ असेल, तर हुक्स अजिबात चालत नाहीत: /recall:show वापरून प्लगइन लोड झाले आहे का ते तपासा, आणि त्यानंतर त्या बॉक्सवर python3 -V प्रतिसाद देत आहे का ते तपासा, कारण हुक्स हे पायथन स्क्रिप्ट्स आहेत.
Recall प्रति सत्र किती बचत करते?
एखाद्या मॉडेलला तुमचे रिपॉझिटरी पुन्हा वाचून काम सुरू करण्यासाठी लागणाऱ्या 30,000 टोकन्सच्या तुलनेत, सारांश लोड करण्यासाठी साधारण 1,200 टोकन्स लागतात. हे सामान्य आकडे आहेत. wc -c .recall/context.md आणि सत्रादरम्यान /context कमांड वापरून, कोल्ड स्टार्ट आणि सारांशावरून पुन्हा सुरू होणारे सत्र यांची तुलना करून स्वतः मोजमाप करा.
मला अजूनही CLAUDE.md फाईलची गरज आहे का?
हो, आणि या दोन्ही गोष्टींची कामे वेगळी आहेत. CLAUDE.md हे तुम्ही मुद्दाम लिहिलेले असते: स्थायी नियम आणि बिल्ड कमांड्स. context.md हे मागील सत्रात प्रत्यक्षात काय घडले यावरून तयार केले जाते, त्यामुळे त्यात अर्धवट राहिलेले मायग्रेशन असते जे तुम्ही कदाचित लिहून ठेवणार नाही. दोन्ही फाईल्स ठेवा.
एका VPS मध्ये अनेक प्रकल्पांची मेमरी साठवता येते का?
हो. Recall प्रत्येक प्रकल्पाच्या डिरेक्टरीमध्ये .recall/ मध्ये मेमरी साठवते, त्यामुळे एकाच सर्व्हरवरील दोन प्रकल्प स्वतंत्र लॉग आणि स्वतंत्र सारांश ठेवतात. प्रत्येक वेळी प्रकल्पाच्या रूटमधून Claude Code सुरू करा, कारण फाईल्स या युजर अकाउंटला फॉलो न करता वर्किंग डिरेक्टरीला फॉलो करतात.